最近,我正在通过以下方式通过 DataView 在数据表中进行过滤:
public static DataTable FilterDatatable(this DataTable dtable,string @operator, string colName, string colValue)
{
if (dtable != null && dtable.Rows.Count > 0)
{
DataView dataView = dtable.DefaultView;
if (@operator.Equals(SqlOperator.Like , StringComparison.InvariantCultureIgnoreCase))
{
dataView.RowFilter = colName + " " + @operator + " '%" + colValue + "%'";
}
else
{
dataView.RowFilter = colName + " " + @operator + " " + colValue;
}
return dataView.ToTable();
}
return dtable;
}
在这里,我可以编写一个防止注入的方法(我知道的那些注入),但实际上,我不知道防止数据表中注入的最佳方法,就像 sql 参数一样。
当我将单引号附加字符串作为 ColVal 中的参数发送时,上述方法会引发异常......