Bonjour,
J'utilise un dataset pour mettre à jour une base de donnee acces en vb.net
J'ai un soucis lors de l'update sur cette Table ( le code fonctionne sur d'autre mdb ) dans ce cas precis il y a "Erreur de syntaxe dans l'instruction INSERT INTO." oleDbException non générée. Voici mon code
Il n'y a pas d'erreur sur l'ouvertude de la table car je peux lire les enregistrements mais je ne peux pas en creer un. D'apres le cours de Mr Lasserre cela pourrait provenir de, je cite: 'Attention: quand la commande Update est effectuée, si l'enregistrement ne répond pas au spécification de la base ( doublon alors que c'est interdit, pas de valeur pour une clé primaire, Champ ayant la valeur Null alors que c'est interdit..), une exception est levée; si vous ne l'avez pas prévue cela plante!!'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Dim ObjetConnection As OleDbConnection Dim ObjetCommand As OleDbCommand Dim ObjetDataAdapter As OleDbDataAdapter Dim ObjetDataSet As New DataSet() 'Attention au New Dim strSql As String Dim ObjetDataTable As DataTable Dim ObjetDataRow As DataRow Dim RowNumber As Integer Dim strConn As String Dim ObjetCommandBuilder As OleDbCommandBuilder strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= c:\MaBase.mdb;" strSql = "SELECT * FROM MaTable" ObjetConnection = New OleDbConnection() ObjetConnection.ConnectionString = strConn ObjetConnection.Open() ObjetCommand = New OleDbCommand(strSql) ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand) ObjetCommand.Connection() = ObjetConnection ObjetDataAdapter.Fill(ObjetDataSet, "MaTable") ObjetDataTable = ObjetDataSet.Tables("MaTable") ObjetDataRow = ObjetDataSet.Tables("MaTable").NewRow() ObjetDataRow("Date") = Date 'champ1 ObjetDataSet.Tables("MaTable").Rows.Add(ObjetDataRow) ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter) ObjetDataAdapter.Update(ObjetDataSet, "MaTable") ObjetDataSet.Clear() ObjetDataAdapter.Fill(ObjetDataSet, "MaTable") ObjetDataTable = ObjetDataSet.Tables("MaTable") ObjetConnection = Nothing ObjetCommand = Nothing ObjetDataAdapter = Nothing ObjetDataSet = Nothing ObjetDataTable = Nothing ObjetDataRow = Nothing
Dans ma table le champs(0) est un numero auto avec clef primaire sans doublon, le champs(1) est au format date avec doublons.
J'ai trouvé des solutions dans le forum VB.net en passant par ADODB ( ce qui d'ailleur ressemble plus à VB6), j'aimerais qd meme comprendre pourquoi ca ne va pas.
Merci de votre aide. a ciao.
Partager