2016-05-05 4 views
2

columnsおよびrowsが複数あるgridviewがあります。文字列に値を代入するためのデータテーブルのループ化

それは

Datatable

以下のようdatatableを生成し、そのクエリが、私はそれが行が含まれているとして、それはできるだけ多くのループにしたい

DataTable dttable2 = new DataTable(); 
    dttable2 = CF.ExecuteDT("select cr.Mkey, cr.Rating1,cr.Rating2,cr.Rating3,cr.Rating4 from p_emp_Company_Rating cr "+ 
          "join p_emp_Exit_Interview ei on ei.Mkey=cr.Mkey where ei.mkey='" + HidMKey.Value + "'"); 

でデバッグ中。

私は以下のコードで試しましたが、一度出てきています。以下は

string strgrid1 = string.Empty; 

    if (dttable2.Rows.Count > 0) 
    { 
     /** Job security **/ 
     if (dttable2.Rows[0]["Rating1"].ToString() == "Y") 
     { 
      strgrid1 = "Poor"; 
     } 
     if (dttable2.Rows[0]["Rating2"].ToString() == "Y") 
     { 
      strgrid1 = "Satisfactory"; 
     } 
     if (dttable2.Rows[0]["Rating3"].ToString() == "Y") 
     { 
      strgrid1 = "Good"; 
     } 
     if (dttable2.Rows[0]["Rating4"].ToString() == "Y") 
     { 
      strgrid1 = "Excellent"; 
     } 
    } 

は、GridViewの

Grid

どのようにループのスクリーンショットですか?

答えて

3

ifステートメントの代わりにforeachループを試してください。

string strgrid1 = string.Empty; 

foreach (DataRow row in dttable2.Rows) 
{ 
    /** Job security **/ 
    if (row["Rating1"].ToString() == "Y") 
    { 
     strgrid1 = "Poor"; 
    } 
    if (row["Rating2"].ToString() == "Y") 
    { 
     strgrid1 = "Satisfactory"; 
    } 
    if (row["Rating3"].ToString() == "Y") 
    { 
     strgrid1 = "Good"; 
    } 
    if (row["Rating4"].ToString() == "Y") 
    { 
     strgrid1 = "Excellent"; 
    } 
} 
+0

「行」のエラーが「型オブジェクトの式にインデックスを適用できません」と表示されます – BNN

+0

申し訳ありません。私は、DataTableで作業するときに行を明示的に 'DataRow'と宣言しなければならないことを忘れていました。それを試してください。 – DunningKrugerEffect

+0

ありがとう、それは今では – BNN

2

また、For Loopで目的の結果を得ることもできます。

string strgrid1 = string.Empty; 

if (dttable2.Rows.Count > 0) 
{ 
    /** Job security **/ 
    for(int i = 0; i < dttable2.Rows.Count - 1; i++) 
    { 
     if (dttable2.Rows[i]["Rating1"].ToString() == "Y") 
     { 
     strgrid1 = "Poor"; 
     } 
     if (dttable2.Rows[i]["Rating2"].ToString() == "Y") 
     { 
     strgrid1 = "Satisfactory"; 
     } 
     if (dttable2.Rows[i]["Rating3"].ToString() == "Y") 
     { 
     strgrid1 = "Good"; 
     } 
     if (dttable2.Rows[i]["Rating4"].ToString() == "Y") 
     { 
     strgrid1 = "Excellent"; 
     } 
    } 
} 
+0

このshahzadに関するコメントhttp://stackoverflow.com/questions/37065000/datatable-assigning-wrong値 - 呼び出し時の文字列 – BNN

関連する問題