2014-02-13 3 views
0

SQL 명령을 사용하여 데이터베이스 테이블에 일부 데이터를 삽입하려고합니다.sql 명령의 오류 C#

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

'dc'유형은 무엇입니까? –

+0

유감스럽게 생각합니다. 연결 에서처럼 ... – user3187867

+1

ExecuteStatement 메서드를 보여줄 수 있습니까? –

답변

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 변수는 명령 텍스트를 보유하는 문자열 리터럴입니다. 귀하의 방법이 무엇인지 모르겠지만 귀하의 commandExecuteStatement으로 전달하고 귀하의 방법을 변경해야한다고 생각합니다.