如何检索包含'char的sql结果

时间:2014-02-12 10:40:30

标签: c# sqlite windows-phone-8

我正在使用select语句从sqlite中检索某些数据。结果包含'char,在选择数据时会导致错误。我怎么能忽略它?

以下是我的sql语句:

string query = string.Format("select * from TableA where [Col]='{0}'",suraTName) 

Statement: select * from TableA where [Col]='An-Naazi'aat'

如何忽略'char并得到正确的结果?

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该使用像这样的参数化查询

string query = "select * from TableA where [Col]=@colValue";
SQLiteCommand cmd = new SQLiteCommand(query, con);
cmd.Parameters.AddWithValue("@colValue", suraTName); 

通过这种方式,正确引用您的值的工作将传递给更了解的SQLite提供程序。此外,没有Sql Injections

的可能性

当然,如果您使用的是像System.Data.SQLite那样的ADO.NET提供程序,如果您使用其他系统来检索数据,那么这是可能的,我只建议将查询中的单引号加倍

suraTName = suraTName.Replace("'", "''");
string query = string.Format("select * from TableA where [Col]='{0}'",suraTName);

但这是非常冒险的选择