Announcement

Collapse
No announcement yet.

Geschwindigkeit bei Sqlserver CE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Geschwindigkeit bei Sqlserver CE

    Moin moin,

    ich habe folgenden Code in C# programmiert :

    Code:
           
            private int ExportInventur(string was,ProgressBar PB)
            {
                String s;
                SqlCeDataReader dr;
                Int16 count  = 0;
                int   aktcnt = 0;
                dr = SetPB(was);
                PB.Visible = true;
                DateTime dt;
                DateTime start = DateTime.Now;
                while (dr.Read())
                {
                    aktcnt++;
                 }
                DateTime ende = DateTime.Now;
                TimeSpan zeit = ende.Subtract(start);
               
                MessageBox.Show(zeit.ToString()+ " " + aktcnt.ToString());
                dr.Close();
                return count;
            }
    in der Tabelle die mit dr gefüllt wird, sind 27 Datensätze.
    Trotzdem braucht die Schleife 2 ganze Sekunden. Mir erscheint das exterm lang.

    Achja, das ganze läuft auf einem PDA (Dell Axim 50v), also keinem besonders langsamen Gerät.

    Meine Frage wäre

    Ist das nomal ???

  • #2
    Und was genau macht das Teil? Wo wird denn die Connection zur DB aufgebaut?

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Die Connection wird so (Beim Programmstart) aufgebaut

      Code:
                  con = new SqlCeConnection();
                  con.ConnectionString = "Data Source=" +    (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\Flowdbce.sdf;");
                  con.Open();
                  Program.con = con;
      Der DataReader wird so gefüllt :

      Code:
              private SqlCeDataReader SetPB(String was)
              {
                  DateTime start = DateTime.Now;
                  SqlCeCommand cmd2;
       
                  cmd2 = new SqlCeCommand("select iv.id,iv.artnr,iv.personalnr, "
                  + "iv.LagerOrt,iv.datum,iv.mandant,iv.filiale,iv.erfassungsart, "
                  + "iv.ae,iv.lfdnr,iv.menge,a.vke,a.ean,a.kzvl "
                  + " from ce_Inventurerfassung iv "
                  + " join ce_Artikel a on (iv.id = a.id) "
                  + " where Erfassungsart = @w and Datenuebernommen = 0 ");
                  cmd2.Parameters.AddWithValue("@w", was);
      
                  cmd2.Connection = Program.con;
                  cmd2.CommandType = CommandType.Text;
                  SqlCeDataReader dr = cmd2.ExecuteReader();
                  DateTime ende = DateTime.Now;
                  return dr;
              }
      Innerhalb der Schleife will ich die Daten in eine Textdatei Exportieren.

      Die Zeit habe ich nur für die Anweisung

      Code:
      while (dr.Read())
      gestoppt. Wie gesagt 2 Sekunden für 2 Datensätze, 5 Sekunden für 27 Datensätze.

      Comment

      Working...
      X