Parameter '' must be defined
Bonjour,
j'essaye d'updater un dataset et de le transmettre en suite dans un base de données mysql. Mas je reçois un message d'erreur me disant
Citation:
"Parameter '@nomClient' must be defined."
Je cherche et recherche depuis deux jours et je dois reconnaitre que je désespère.
voici mon code
Code:
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 42 43 44 45
|
MySQLCmd = "select * from clients ;";
this.MyAdapter.SelectCommand = new MySqlCommand(MySQLCmd, this.Connection);
this.Connection.ConnectionString = this.ConnectionStr;
this.OpenConnect();
MyAdapter.SelectCommand = this.Connection.CreateCommand();
MyAdapter.SelectCommand.CommandText = MySQLCmd;// MyAdapter.Fill(TheTable);
MyAdapter.Fill(TheTable, "clients");
// modifier le dataset
string les = TheTable.Tables["clients"].Rows[0]["idClient"].ToString();
MessageBox.Show(les);
TheTable.Tables["clients"].Rows[0]["nomClient"] = "mae";
//effectuer l'update
string Upcmd = "UPDATE clients SET nomClient = @nomClient WHERE id_client = @idClient";
this.MyAdapter.UpdateCommand = new MySqlCommand(Upcmd, this.Connection);
this.MyAdapter.UpdateCommand.CommandText = Upcmd;
// préparation des parametres
DbParameter paranomidClient = this.MyAdapter.UpdateCommand.CreateParameter();
paranomidClient.Value = TheTable.Tables["clients"].Rows[0]["idClient"];
paranomidClient.SourceColumn = "idClient";
paranomidClient.ParameterName = "idClient";
this.MyAdapter.UpdateCommand.Parameters.Add(paranomidClient);
DbParameter paranomclient = this.MyAdapter.UpdateCommand.CreateParameter();
paranomclient.SourceColumn = "nomClient";
paranomclient.Value = "fm";
paranomclient.ParameterName = "nomClient";
this.MyAdapter.UpdateCommand.Parameters.Add(paranomclient);
//lancement de l'update
this.MyAdapter.UpdateCommand = new MySqlCommand(Upcmd, this.Connection);
int n = this.MyAdapter.Update(TheTable.Tables["clients"]); |
et voici le message d'erreur en détail:
Citation:
L'exception MySql.Data.MySqlClient.MySqlException n'a pas été gérée
Message="Fatal error encountered during command execution."
Source="System.Data"
ErrorCode=-2147467259
Number=0
StackTrace:
à System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
à System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
à System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
à System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
à System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
à DataLayer.CustomerClient.InsertClient(Client leclient) dans C:\Users\frederic\Desktop\cle\MailTo1.0\DataLayer\CustomerClient.cs:ligne 224
à BusinnessLayer.BuClientManager.InsertClient(Client UnClient) dans C:\Users\frederic\Desktop\cle\MailTo1.0\Businness\BuClientManager.cs:ligne 75
à MailTo1._0.ClientManagerForm.EnregistreClientButton_Click(Object sender, EventArgs e) dans C:\Users\frederic\Desktop\cle\MailTo1.0\MailTo1.0\ClientManagerForm.cs:ligne 76
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.Run(Form mainForm)
à MailTo1._0.Program.Main() dans C:\Users\frederic\Desktop\cle\MailTo1.0\MailTo1.0\Program.cs:ligne 18
à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
InnerException: MySql.Data.MySqlClient.MySqlException
Message="Parameter '@nomClient' must be defined."
Source="MySql.Data"
ErrorCode=-2147467259
Number=0
StackTrace:
à MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName)
à MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)
à MySql.Data.MySqlClient.Statement.BindParameters()
à MySql.Data.MySqlClient.Statement.Execute()
à MySql.Data.MySqlClient.PreparableStatement.Execute()
à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
InnerException:
Merci beaucoup