我有一个文本字段,它破坏了我的 sql 语句。我如何逃避该领域的所有字符?我在 C# 中使用带有http://sqlite.phxsoftware.com/的 sqlite
user34537
问问题
13587 次
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 回答