我正在使用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并得到正确的结果?
谢谢!
答案 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);
但这是非常冒险的选择