它說我的語法有問題,但我不知道如何解決它。我的數據庫確實包含這些列。有人能告訴我爲什麼它在查詢中引發語法錯誤?
string Query = "INSERT into Users (full_name, email, password, admin) VALUES (@name,@email,@password,@admin)";
try
{
OleDbConnection con = new OleDbConnection(@" provider=Microsoft.ace.Oledb.12.0; data source=" + dbString);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", nameTB.Text);
cmd.Parameters.AddWithValue("@email", emailTB.Text);
cmd.Parameters.AddWithValue("@password", passTB.Text);
cmd.Parameters.AddWithValue("@admin",'0');
cmd.CommandText = Query;
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
您可以將附近'cmd.CommadText'一個斷點,並檢查產生什麼實際的查詢。您也可以在SQL管理工作室中複製並運行查詢以瞭解確切的錯誤。還要檢查你傳遞的任何參數是否爲空 – Marshal
你應該看看[我們可以停止使用AddWithValue()了嗎?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already /)並停止使用'.AddWithValue()' - 它會導致意想不到的結果和令人驚訝的結果... –
您是否驗證過您的參數都不是空字符串? –