, 나는 다음과 같은 방법으로 DataView를 통해 데이터 테이블에서 필터링을하고있는 중이 야 :ADO.Net Datatable에서 주입을 방지하는 최선의 방법은? 최근
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의 인수로 작은 따옴표 추가 된 문자열을 보낼 때 방법 위
당신은 그 인스턴스에서 보호를 필요로하지 않는
그러나 colValue에 작은 따옴표가 붙은 문자열을 전달하면 예외가 발생합니다 ...... 그래서 나는 어딘가에서 예방 주사를 놓치고 있다고 생각했습니다. –
어, 예외를 게시 할 수 있습니까? –
ColVal에서 Like (인수)로 Silver (작은 따옴표를 추가)를 전달하면 Operator에서와 같이 "Syntax error : 'silver'연산자 다음에 피연산자가 누락됩니다."... –