2017-03-18 34 views
0

私は、一度に1つの列をクエリして、設定基準を満たしているかどうかを確認するDataTableを持っています。何らかの理由で、間違っています。C#DataTable.Select複数の条件で

private bool BusinessRulesOne(DataTable dt, DataColumn dc) 
    { 
     bool isSatisfied = false; 
     DataRow[] checkColumn = dt.Select(dc.ColumnName + " " + "in (1,2,3,)"); 

     if (checkColumn.Length != 0) 
     { 
      isSatisfied = true; 
     } 
     return isSatisfied; 
    } 

このメソッドでは、私は現在DataTableを渡しています。私は現在集中しているクエリとDataColumnです。ここで発生する必要があるのは、この列の値が1,2および3の値で構成されているかどうかをチェックしたい場合です。はいの場合はtrueを返します。私はその列であれば1の(1者)の数をチェックしてる他のルールで

private bool BusinessRulesTwo(DataTable dt, DataColumn dc) 
    { 
     bool isSatisfied = false; 
     var checkColumn = dt.Select(dc.ColumnName + " " + " = 1"); 

     if (checkColumn.Count() > 3) 
     { 
      isSatisfied = true; 
     } 
     return isSatisfied; 
    } 

つ以上(3)YESの場合はtrueを返します。

私はLinqと結びついているわけではありませんが、人生が楽になるならば、それを学び、探求していきたいと思います。

+0

エスケープシーケンスなしで列名を使用する準備ができていますか? (スペースなし、特殊文字なし、...)。正確にどのようなデータの組み合わせが正しい/間違った結果をもたらしているかの小さな例を挙げることができますか?値は本当に数値型であり、数値文字を含む文字列ではありませんか? – grek40

答えて

0

シングルと等しい=は、等価性チェックではなく、割り当てのためのものです。またはequals 1= 1の代わりにdoubleとしてください。

+0

これは 'DataTable.Select()'メソッド上にあるので、その文字列またはコンテキストはSQLクエリの形式でなければならないことに注意してください。 –