【发布时间】:2013-05-20 08:40:48
【问题描述】:
我创建了一个代码,用于更新/编辑连接到 MS Access 的 C# 程序的计算机/电子产品的详细信息。以下是代码:
OleDbCommand cmd = new OleDbCommand("UPDATE Available SET ProductType = '" + newAvailable.ProductType + "', Brand = '"+ newAvailable.Brand + "', Model = '" + newAvailable.Model + "', SerialNo = '" + newAvailable.SerialNo + "', Remarks = '" + newAvailable.Remarks + "', RAM = '" + newAvailable.RAM + "', HDD = '" + newAvailable.HDD + "', ODD = '" + newAvailable.ODD + "', VideoCard = '" + newAvailable.VideoCard + "', PS = '" + newAvailable.PS + "' WHERE AvailableID = '"+oldAvailable.AvailableID+"'", cnn);
cmd.CommandType = CommandType.Text;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
AvailableID 接受 Int32 值,其余变量为字符串。该程序是可执行的,但 C# 检测到错误。
条件表达式中的数据类型不匹配。
我该怎么办?
【问题讨论】:
-
availableID 是数字字段?
-
是的。 availableID 是数字字段。访问和c#
-
如果可用 ID 是数字字段,那么为什么它在单引号中传递..尝试删除引号,例如 Where AvailableID="+oldAvailable.AvailableID+"
-
谢谢,凯尔。代码现在可以运行,记录终于可以更新了。