sql命令c#出错

时间:2014-02-13 23:11:40

标签: c# sql

我正在尝试使用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();
}

1 个答案:

答案 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。