我一直在靠牆敲打我的頭,並不斷髮現模糊的錯誤「UPDATE語句中的語法錯誤」。任何人都可以告訴我我的更新聲明有什麼問題嗎?在Access數據庫c中更新一個布爾型字段#
try
{
OleDbConnection ECon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\zoofari\zoofari\zoofari\bin\Debug\MainData.accdb");
OleDbDataAdapter EdAdapt = new OleDbDataAdapter();
EdAdapt.UpdateCommand = new OleDbCommand("UPDATE tbl_Results SET @Q1-Easy WHERE Username = '" +txtUname.Text+ "'", ECon);
EdAdapt.UpdateCommand.Parameters.Add("@Q1-Easy", OleDbType.Boolean).Value = true;
ECon.Open();
EdAdapt.UpdateCommand.ExecuteNonQuery();
ECon.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
您好Steve,Q1-Easy是字段名稱,我試圖將其值從false更改爲true。這是否是錯誤的方式? – LHammy 2013-04-04 20:30:26
對不起並不意味着發佈這麼快,這個更新表達是否正確? (更新tbl_Results「+」SET @ Q1-Easy = true其中用戶名='「+ txtUname.Text +」'「,ECon); – LHammy 2013-04-04 20:38:45
不,真正行不通。如果要將值直接放入字符串中(如果SqlServer需要1,則在Access中),則傳遞-1。正如我所說。總是使用參數化查詢。看看[Sql注入問題在這裏](http://stackoverflow.com/questions/332365/how-does-this-sql-injection-work) – Steve 2013-04-04 20:41:14