我正在尝试使用sql命令将一些数据插入到数据库表中。我一直收到这个错误:
Must declare the scalar variable "@MC"
代码:
void CreateModule() {
Query = "INSERT INTO TblModules (Module_Code, Module_Name, Date,Start_Time, Duration) values ( @MC, @MN, @DATE, @ST, @DURATION)";
theReader = dc.ExecuteStatement(Query);
command.Parameters.AddWithValue("@MC", ModuleCodeTxt.Text);
command.Parameters.AddWithValue("@MN", ModulenameTxt.Text);
command.Parameters.AddWithValue("@DATE", MyDateTimePicker.Value);
command.Parameters.AddWithValue("@ST", comboBoxTime.SelectedItem);
command.Parameters.AddWithValue("@DURATION", comboBoxDuration.SelectedItem);
MessageBox.Show(" Module Created");
conn.CloseConnection();
}
答案 0 :(得分:7)
在执行查询
之前,您应该为参数赋予价值command.CommandText = Query; // <-- don't forget to set command text
command.Parameters.AddWithValue("@MC", ModuleCodeTxt.Text);
command.Parameters.AddWithValue("@MN", ModulenameTxt.Text);
command.Parameters.AddWithValue("@DATE", MyDateTimePicker.Value);
command.Parameters.AddWithValue("@ST", comboBoxTime.SelectedItem);
command.Parameters.AddWithValue("@DURATION", comboBoxDuration.SelectedItem);
//execute the query here, maybe you want this?
theReader = command.ExecuteReader();
那么你的command
在哪里?你的Query
变量只是一个包含命令文本的字符串文字。我不知道你的方法在做什么,但我认为你应该将command
传递给你的ExecuteStatement
并改变你的方法ofcourse。