13

我有一个文本字段,它破坏了我的 sql 语句。我如何逃避该领域的所有字符?我在 C# 中使用带有http://sqlite.phxsoftware.com/的 sqlite

4

2 回答 2

33

您应该使用如下参数:

SQLiteCommand cmd = _connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM MyTable WHERE MyColumn = @parameter";
cmd.Parameters.Add( new SQLiteParameter( "@parameter", textfield ) );
SQLiteDataReader reader = cmd.ExecuteReader();

使用参数化 SQL 将转义所有输入值并帮助保护您免受 SQL 注入攻击。

于 2009-03-11T03:43:44.400 回答
1

您还可以用怀疑单引号(不是“)替换所有单引号分隔符。

sql = sql.Replace("'","''");
于 2009-03-11T03:54:42.893 回答