2009-10-07 8 views
-1

Je suis nouveau sur vb.net et j'ai beaucoup de mal à mettre à jour un champ dans une table en utilisant la construction For ... Next sur un ensemble de données. Exemple de code ci-dessous - quelqu'un peut-il me dire ce que je manque? Je sais que cet exemple particulier pourrait être accompli avec une simple instruction de mise à jour SQL, mais l'utilisation réelle de ce que ce code va devenir nécessite de parcourir chaque enregistrement dans l'ensemble de données. L'exemple ci-dessous est juste un simple pour me laisser descendre la procédure. Notez que cela s'exécute sans exception, mais ne change pas les données de la table.Mise à jour du jeu de données VB.NET

Aide! :)


Dim objConn As SqlConnection = New SqlConnection("Data Source=DALLAS\;Initial Catalog=Adaptive;Integrated Security=True") 

    Dim selectCMD As SqlCommand = New SqlCommand("SELECT * from dwbprocref", objConn) 
    selectCMD.CommandTimeout = 30 

    Dim custDA As SqlDataAdapter = New SqlDataAdapter 
    custDA.SelectCommand = selectCMD 

    Dim custCB As SqlCommandBuilder = New SqlCommandBuilder(custDA) 
    custCB.QuotePrefix = "[" 
    custCB.QuoteSuffix = "]" 


    Dim dRow As DataRow 
    Dim dTable As DataTable 

    objConn.Open() 

    Dim custDS As DataSet = New DataSet 
    custDA.Fill(custDS, "dwbprocref") 

    For Each dRow In custDS.Tables(0).Rows 
     If dRow.Item("pr_format") = "MDV" Then 
      dRow.Item("pr_tester") = "X" 
     End If 
     custDS.AcceptChanges() 
    Next 
    custDA.Update(custDS, "dwbprocref") 

    objConn.Close() 

Répondre

3

Vous appelez AcceptChanges. Cela marque toutes les lignes comme étant non modifiées, elles ne sont donc jamais mises à jour dans la base de données. Supprimer cet appel et vous devriez être bon.

Questions connexes