使用'(萎缩)输入数据到SQL Server CE表中

tou*_*ets 0 c# sql-server-ce

我怎样才能将数据输入"John's shoe"到SQL Server CE表(版本3.5)中,因为插入语句等等不接受在语句中使用'撇号,如下面的语句:

INSERT INTO ShowsDB(Item) VALUES('+ "John's shoes" + "')
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

基本上,您必须避免将数据直接放入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();
}
Run Code Online (Sandbox Code Playgroud)

使用参数化SQL有三个好处:

  • 避免SQL注入攻击
  • 避免不必要和危险的字符串转换(特别是对于日期/时间类型)
  • 将"代码"(SQL)与数据(参数)分开,使其更易于理解