2010-04-02 6 views
0

J'ai écrit un module d'une connexion à DB avec OleDB et le 'sub UpdateClients' ne fonctionne pas, la base de données ne se met pas à jour.vb.net | Mettre à jour la base de données avec OleDB

qu'est-ce qui manque ou est-il faux?

cette ligne -> "daClient.Update (DSClient, "CLUB_CLIENT")" -> Travaux de doesnt (désolé mon anglais, je ne suis pas si bon)

la base de données ne met pas à jour après cette ligne (comme je m'y attendais)

ce qui manque dans mon code? Je veux que ma base de données soit mise à jour. "txtid" sera dans "ClntId" de mes tables.

Module mdlDB 
    Const CONNECTION_STRING As String = _ 
      "provider= Microsoft.Jet.OleDB.4.0;Data Source=DbHalf.mdb;mode= Share Deny None" 
    Dim daClient As New OleDb.OleDbDataAdapter 
    Dim dsClient As New DataSet 
    Dim cmClient As CurrencyManager 

    Public Sub OpenClients(ByVal txtId, ByVal txtName, ByVal BindingContext) 

     Dim Con As New OleDb.OleDbConnection(CONNECTION_STRING) 
     Dim sqlClient As New OleDb.OleDbCommand 

     Con.Open() 
     sqlClient.CommandText = "SELECT*" 
     sqlClient.CommandText += "FROM tblClubClient" 
     sqlClient.Connection = Con 
     daClient.SelectCommand = sqlClient 

     dsClient.Clear() 
     daClient.Fill(dsClient, "CLUB_CLIENT") 

     cmClient = BindingContext(dsClient, "CLUB_CLIENT") 
     cmClient.Position = 0 

     txtId.DataBindings.Add("text", dsClient, "CLUB_CLIENT.ClntId") 
     txtName.DataBindings.Add("text", dsClient, "CLUB_CLIENT.ClntName") 

     Con.Close() 

    End Sub 

    Public Sub UpdateClients(ByVal txtId, ByVal txtName, ByVal BindingContext) 

     Dim cb As New OleDb.OleDbCommandBuilder(daClient) 

     cmClient = BindingContext(dsClient, "CLUB_CLIENT") 

     dsClient.Tables("CLUB_CLIENT").Rows(cmClient.Position).Item("ClntId") = txtId.Text 
     dsClient.Tables("CLUB_CLIENT").Rows(cmClient.Position).Item("ClntName") = txtName.Text 

     daClient.Update(dsClient, "CLUB_CLIENT") 

    End Sub 

End Module 
+0

Ce qui manque est votre description de ce qui ne va pas. –

+0

Votre jeu de données est déconnecté. Et John a raison ... très difficile de comprendre ce que vous cherchez. – decompiled

+0

cette ligne -> "daClient.Update (dsClient," CLUB_CLIENT ")" -> dosen't travail (désolé pour mon anglais, je ne suis pas si bon) la base de données ne met pas à jour après cette ligne (comme je attendu) ce qui manque dans mon code? Je veux que ma base de données soit mise à jour ("txtid" sera dans "ClntId" dans mes tables.) "Votre jeu de données est déconnecté" - qu'est-ce que vous voulez dire? con.open()? –

Répondre

0

Parfois, les gens dans ces forums sont accrochés sur « protocole forum » ou « l'étiquette du forum » (Si vous voulez voir dans bêches aller jeter un coup d'oeil sur les forums des développeurs Apple.)

La réponse a été enterrée il y a les commentaires --- spécifiquement:

Puisque vous fermez la connexion dans les OpenClients() ---> Con.Close(), il n'est pas viable dans la routine UpdateClients(). Je vais également souligner l'idée commentée de l'utilisation de TRY/CATCH et ajouter que, puisque les connexions à la base de données peuvent mystérieusement disparaître, vous pouvez également ajouter une vérification de Con.State (connexion de base de données ouverte ou fermée) dans les sous-programmes qui s'attend à ce qu'une connexion à une base de données soit ouverte. Si la vérification échoue, vous pouvez rappeler le sous-programme OpenClients() avant de continuer.

Questions connexes