OVH Cloud OVH Cloud

oledbdataadapter

1 réponse
Avatar
laurent
Salut,
Je suis sur le point de me tirer une balle si je trouve=20
pas de solution...!
Probl=E8me tout b=EAte, mais qui me saoule quand m=EAme :=20
J'ai une base Access2000, la table que je claque dans mon=20
adapter =E0 une cl=E9 primaire en auto incr=E9ment, et il n'y a=20
pas moyen que ma requ=EAte INSERT INTO fonctionne...
Voici mon code :=20

ADAP_Salle =3D New OleDbDataAdapter("SELECT=20
id_param_reunion,professeur,salle,matiere,date,heure,duree=20
FROM reunion_parametrage WHERE reunion=3D'" & sCodeReunion=20
& "'", CNN)

ADAP_Salle.InsertCommand =3D New OleDbCommand("INSERT=20
INTO reunion_parametrage=20
(id_param_reunion,reunion,professeur,salle,matiere,date,heu
re,duree) VALUES (?,'" & sCodeReunion & "',?,?,?,?,?,?)",=20
CNN)
ADAP_Salle.InsertCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt,=20
10, "id_param_reunion")
ADAP_Salle.InsertCommand.Parameters.Add("@professeur",=20
OleDbType.BigInt, 10, "professeur")
ADAP_Salle.InsertCommand.Parameters.Add("@salle",=20
OleDbType.Char, 10, "salle")
ADAP_Salle.InsertCommand.Parameters.Add("@matiere",=20
OleDbType.Char, 30, "matiere")
ADAP_Salle.InsertCommand.Parameters.Add("@date",=20
OleDbType.DBDate, 10, "date")
ADAP_Salle.InsertCommand.Parameters.Add("@heure",=20
OleDbType.DBTimeStamp, 10, "heure")
ADAP_Salle.InsertCommand.Parameters.Add("@duree",=20
OleDbType.Integer, 10, "duree")
WP =3D ADAP_Salle.InsertCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt, 10)
WP.SourceColumn =3D "id_param_reunion"
WP.SourceVersion =3D DataRowVersion.Original

ADAP_Salle.UpdateCommand =3D New OleDbCommand("UPDATE=20
reunion_parametrage SET professeur=3D?, salle=3D?, matiere=3D?,=20
date=3D?, heure=3D?, duree=3D? WHERE id_param_reunion=3D?", CNN)
ADAP_Salle.UpdateCommand.Parameters.Add("@professeur",=20
OleDbType.BigInt, 10, "professeur")
ADAP_Salle.UpdateCommand.Parameters.Add("@salle",=20
OleDbType.Char, 10, "salle")
ADAP_Salle.UpdateCommand.Parameters.Add("@matiere",=20
OleDbType.Char, 30, "matiere")
ADAP_Salle.UpdateCommand.Parameters.Add("@date",=20
OleDbType.DBDate, 10, "date")
ADAP_Salle.UpdateCommand.Parameters.Add("@heure",=20
OleDbType.DBTimeStamp, 10, "heure")
ADAP_Salle.UpdateCommand.Parameters.Add("@duree",=20
OleDbType.Integer, 10, "duree")
WP =3D ADAP_Salle.UpdateCommand.Parameters.Add
("&id_param_reunion", OleDbType.Char, 10)
WP.SourceColumn =3D "id_param_reunion"
WP.SourceVersion =3D DataRowVersion.Original

ADAP_Salle.DeleteCommand =3D New OleDbCommand("DELETE=20
FROM reunion_parametrage WHERE id_param_reunion =3D ?", CNN)
ADAP_Salle.DeleteCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt,=20
10, "id_param_reunion")


DSSalle =3D New DataSet("salle")
ADAP_Salle.Fill(DSSalle, "lst_salle")
Dim Key(0) As DataColumn
Key(0) =3D DSSalle.Tables("lst_salle").Columns(0)
Key(0).AutoIncrement =3D True
DSSalle.Tables("lst_salle").PrimaryKey =3D Key

GRDSalle.SetDataBinding(DSSalle, "lst_salle")



Mon code de validation :=20

Dim DR(0) As DataRow
Dim iIndx As Integer

For iIndx =3D 0 To DSSalle.Tables(0).Rows.Count - 1
DR(0) =3D DSSalle.Tables(0).Rows(iIndx)
ADAP_Salle.Update(DR)
Next



Finalit=E9 : j'ai toujours le message =E0 la con d'erreur non=20
g=E9r=E9 dans system.data.oledb ...
J'en ai marre, avec DAO ca va tout seul!!!

Toutes suggestion est la bien venue

1 réponse

Avatar
RABILLOUD JMARC [MVP]
Tu ne dois pas passer le IdParam dans le Insert, c'est le SGBD qui le gère

"laurent" a écrit dans le message de
news: 254301c4aac2$b0952c00$
Salut,
Je suis sur le point de me tirer une balle si je trouve
pas de solution...!
Problème tout bête, mais qui me saoule quand même :
J'ai une base Access2000, la table que je claque dans mon
adapter à une clé primaire en auto incrément, et il n'y a
pas moyen que ma requête INSERT INTO fonctionne...
Voici mon code :

ADAP_Salle = New OleDbDataAdapter("SELECT
id_param_reunion,professeur,salle,matiere,date,heure,duree
FROM reunion_parametrage WHERE reunion='" & sCodeReunion
& "'", CNN)

ADAP_Salle.InsertCommand = New OleDbCommand("INSERT
INTO reunion_parametrage
(id_param_reunion,reunion,professeur,salle,matiere,date,heu
re,duree) VALUES (?,'" & sCodeReunion & "',?,?,?,?,?,?)",
CNN)
ADAP_Salle.InsertCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt,
10, "id_param_reunion")
ADAP_Salle.InsertCommand.Parameters.Add("@professeur",
OleDbType.BigInt, 10, "professeur")
ADAP_Salle.InsertCommand.Parameters.Add("@salle",
OleDbType.Char, 10, "salle")
ADAP_Salle.InsertCommand.Parameters.Add("@matiere",
OleDbType.Char, 30, "matiere")
ADAP_Salle.InsertCommand.Parameters.Add("@date",
OleDbType.DBDate, 10, "date")
ADAP_Salle.InsertCommand.Parameters.Add("@heure",
OleDbType.DBTimeStamp, 10, "heure")
ADAP_Salle.InsertCommand.Parameters.Add("@duree",
OleDbType.Integer, 10, "duree")
WP = ADAP_Salle.InsertCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt, 10)
WP.SourceColumn = "id_param_reunion"
WP.SourceVersion = DataRowVersion.Original

ADAP_Salle.UpdateCommand = New OleDbCommand("UPDATE
reunion_parametrage SET professeur=?, salle=?, matiere=?,
date=?, heure=?, duree=? WHERE id_param_reunion=?", CNN)
ADAP_Salle.UpdateCommand.Parameters.Add("@professeur",
OleDbType.BigInt, 10, "professeur")
ADAP_Salle.UpdateCommand.Parameters.Add("@salle",
OleDbType.Char, 10, "salle")
ADAP_Salle.UpdateCommand.Parameters.Add("@matiere",
OleDbType.Char, 30, "matiere")
ADAP_Salle.UpdateCommand.Parameters.Add("@date",
OleDbType.DBDate, 10, "date")
ADAP_Salle.UpdateCommand.Parameters.Add("@heure",
OleDbType.DBTimeStamp, 10, "heure")
ADAP_Salle.UpdateCommand.Parameters.Add("@duree",
OleDbType.Integer, 10, "duree")
WP = ADAP_Salle.UpdateCommand.Parameters.Add
("&id_param_reunion", OleDbType.Char, 10)
WP.SourceColumn = "id_param_reunion"
WP.SourceVersion = DataRowVersion.Original

ADAP_Salle.DeleteCommand = New OleDbCommand("DELETE
FROM reunion_parametrage WHERE id_param_reunion = ?", CNN)
ADAP_Salle.DeleteCommand.Parameters.Add
("@id_param_reunion", OleDbType.BigInt,
10, "id_param_reunion")


DSSalle = New DataSet("salle")
ADAP_Salle.Fill(DSSalle, "lst_salle")
Dim Key(0) As DataColumn
Key(0) = DSSalle.Tables("lst_salle").Columns(0)
Key(0).AutoIncrement = True
DSSalle.Tables("lst_salle").PrimaryKey = Key

GRDSalle.SetDataBinding(DSSalle, "lst_salle")



Mon code de validation :

Dim DR(0) As DataRow
Dim iIndx As Integer

For iIndx = 0 To DSSalle.Tables(0).Rows.Count - 1
DR(0) = DSSalle.Tables(0).Rows(iIndx)
ADAP_Salle.Update(DR)
Next



Finalité : j'ai toujours le message à la con d'erreur non
géré dans system.data.oledb ...
J'en ai marre, avec DAO ca va tout seul!!!

Toutes suggestion est la bien venue