为了清理查询,您需要提取参数并通过SqlCommand Parameters AddWithValue将其添加,以避免SQL注入。其他方法应该是使查询字符串为const并且不带参数。当前,我的方法具有以下签名:MyMethod(string query, ...)
,因此将在调用函数时定义查询。但是我正在使用声纳魔方,它仍然向我显示未消毒。我应该使用哪种方法?我无法在方法const中创建字符串,它没有任何参数。是误报吗?
public DataSet DoQuery(string query, string connection)
{
initialize connection();
SqlCommand command = new SQLCommand
{
commandType = CommandType.Text;
CommandText = query;
}
}
调用时:
string sql = "Select something";
DoQuery(sql, ...);
声纳多维数据集会说我需要对这根线进行消毒:
CommandType = query;