我是C#的新手,只研究了幾個星期。我正在用後窗口和Access數據庫編寫一個應用程序。我希望將用戶插入的細節添加到訪問數據庫中。我已經通過其他論壇(包括在stackoverflow)看到這一點,但我不斷收到在運行時拋出一個錯誤,說明'命令文本沒有設置爲命令對象'(ive突出顯示在下面顯示的行)哪我不明白,也無法擺脫。任何幫助將非常感激。由於ķ引發異常:C#命令文本未設置爲命令對象
private void btnOkay_Click(object sender, EventArgs e)
{
string connectionString =
"provider=Microsoft.ACE.Oledb.12.0;" +
"data source=C:\\Users\\Documents\\StudentRegistrationDatabase.accdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
string strSql = @"INSERT INTO StudentDetails ([Forename],[Surname],[CourseName],[DOB],)" +
"VALUES('"+txtFirstName.Text +"','" +txtLastName.Text +"','" +txtCourseName.Text +"','"+ txtDOB.Text +"')";
myOleDbConnection.Open();
OleDbCommand cmd = new OleDbCommand(strSql, myOleDbConnection);
cmd.Parameters.AddWithValue("@Forename", txtFirstName);
cmd.Parameters.AddWithValue("@Surname", txtLastName);
cmd.Parameters.AddWithValue("@CourseName", txtCourseName);
cmd.Parameters.AddWithValue("@DOB", txtDOB);
**myOleDbCommand.ExecuteNonQuery();** }
編輯: 謝謝大家的回覆。當我第一次開始編碼這一塊,我用下面的代碼行:
' {
string connectionString =
"provider=Microsoft.ACE.Oledb.12.0;" +
"data source=C:\\Users\\Botterill\\Documents\\StudentRegistrationDatabase.accdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
myOleDbConnection.Open();
myOleDbCommand.CommandText = "INSERT INTO StudentDetails ([Forename],[Surname],[CourseName],[DOB],)" +
"VALUES('" + txtFirstName.Text + "','" + txtLastName.Text + "','" + txtCourseName.Text + "','" + txtDOB.Text + "')";'
**myOleDbCommand.ExecuteNonQuery();**
但是,在大膽我得到一個運行時錯誤說,有「在INSERT INTO statement'.I語法錯誤行我認爲這會在我發佈的第一個問題中所做的更改中得到糾正。任何幫助將不勝感激。謝謝凱特
爲什麼添加不在那裏的參數?如果你想使用'AddWithValue'方法,你需要在你的代碼中提供'@ Forename',而不是直接插入'txtFirstName.Text' – 2013-04-10 12:19:01