我如何才能将数据输入"John's shoe"
到 SQL Server CE 表(3.5 版)中,因为插入语句等不接受在语句中使用撇号,例如以下语句:
INSERT INTO ShowsDB(Item) VALUES('+ "John's shoes" + "')
我如何才能将数据输入"John's shoe"
到 SQL Server CE 表(3.5 版)中,因为插入语句等不接受在语句中使用撇号,例如以下语句:
INSERT INTO ShowsDB(Item) VALUES('+ "John's shoes" + "')
基本上,您必须避免将数据直接放入 SQL 中。改用参数化 SQL:
// I'm assuming you're opening the connection already
string sql = "INSERT INTO ShowDB(ITEM) VALUES (@Name)";
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = "John's shoes";
command.ExecuteNonQuery();
}
使用参数化 SQL 有三个好处:
标准 SQL 转义是引号应该加倍,因此您的查询变为
INSERT INTO ShowsDB(Item) VALUES('+ "John''s shoes" + "')
对于诸如针对数据库副本运行 SELECT 语句以诊断问题之类的事情来说,这非常好,但绝不应该在实际生产系统中使用。参数化查询是您的朋友。