Announcement

Collapse
No announcement yet.

Richtiger SqlCommand?

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

  • Richtiger SqlCommand?

    Hi,
    ich bin dabei ein VB6-Programm(.DAO) mit MySQL und ADO.Net zu adaptieren, was leider mit Problemen verbunden ist, weil ich doch ein VB.Net-Newbie bin. Ich habe eine Routine die mir Kombinationen generiert, was in VB6 tadellos funktioniert. VB6 in Verbindung mit Access ist eine sowohl vom Umfang als auch von der Zugriffsgeschwindigkeit her "eine begrenzte Geschichte". Mein Versuch ist allerdings noch um etliches langsamer!
    Mein Code-Gerüst:
    Code:
    Dim mysqlConn As MySqlConnection
        mysqlConn = New MySqlConnection( _
        "Data Source=localhost; Initial Catalog=base; User ID=root;PWD=xxxxxx")
        Dim nonqueryCommand As MySqlCommand = mysqlConn.CreateCommand()
        mysqlConn.Open()
    
        ' - Speichern 'Datum'
        Dim insertDatumCom As MySqlCommand
        insertDatumCom = New MySqlCommand( _
        "INSERT INTO tblNN(Datum) VALUES (?Datum)", mysqlConn)
        insertDatumCom.Parameters.Add("?Datum", MySqlDbType.Datetime)
        insertDatumCom.Prepare()
        'es folgen noch weitere 'Vorbereitungen' nach demselben Muster
       'Variable
        Dim g As Graphics
        Dim n As Long, max As Long, Counter As Long
        Dim a As Integer etc... As Integer
        Dim min As Integer
        max = NN '...Anzahl der Kombinationen 
        n = 0 : min = 0
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = CInt(max)
        ProgressBar1.Step = 1
    
        For a = 1 To NN
          For b etc...
                    n = n + 1
    
                    If n Mod 10000 = 1 Or n = NN Then
                      ProgressBar1.PerformStep()
                      Application.DoEvents()
                      'Anzeiger Kombinationen in einer pBox
                      g = Me.pBox1.CreateGraphics()
                      g.FillRectangle(New SolidBrush(Me.pBox1.BackColor), 2, 0, Me.pBox1.Width, Me.pBox1.Height)
                      g.DrawString(a.ToString(), New System.Drawing.Font("Tahoma", 9), New SolidBrush(Color.Black), 2, 0)
                      'weitere nach dem gleichen Schema
                    End If
    
                    '---- Anfang Inline---------------------------------------------
                    ' - Datumseintrag
                    insertDatumCom.Parameters("?Datum").Value = CStr(CDate(lblDate.Text))
                    insertDatumCom.ExecuteNonQuery()
                    ' weitere Eintragungen
                    ' Ende Inline-----------------------------------------------
    
                  Next 
                Next etc.
    Da als Ergebnis in der 1.Zeile(Spalte1) richtigerweise das Datum steht, aber in den folgenden Spalten kein Eintrag, dafür aber in der 2. Zeile in der 1.Spalte nichts aber in der 2.Spalte sehr wohl wieder (in den restlichen Spalten wieder nichts) muss ein Fehler in der Schleife vorhanden sein. Da ich diese aber 1:1 aus VB6 übernommen habe, muss wohl VB.Net anders "ticken".
    Wie gesagt: ich bin ein Newbie und würde mich um aufklärende Hinweise freuen.
    Grüße
    Kann es sein, dass die Anweisung:
    insertDatumCom.ExecuteNonQuery()
    jeweils eine neue Zeile generiert?
    Zuletzt editiert von CarpeDiem; 02.08.2007, 19:19. Reason: Lösungsversuch....

  • #2
    Hallo CarpeDiem,

    Ja Du generierst jedesmal eine neue Zeile, da Du bei jeden Durchgang in der Schleife auch Dein SqlCommand neu ausrufst.

    Gruß
    Oliver

    Comment

    Working...
    X