我一直在靠墙敲打我的头,并不断发现模糊的错误“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