Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 循环数据表,用于将值分配给字符串_C#_Asp.net_Gridview_Datatable - Fatal编程技术网

C# 循环数据表,用于将值分配给字符串

C# 循环数据表,用于将值分配给字符串,c#,asp.net,gridview,datatable,C#,Asp.net,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_Ex

我有一个
网格视图
,其中有多个

调试时,它会生成如下所示的
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的屏幕截图


如何循环?

尝试使用
foreach
循环,而不是
if
语句

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";
    }
}

您还可以尝试使用For循环来实现所需的结果

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";
       }
    }
}
string strgrid1=string.Empty;
如果(dttable2.Rows.Count>0)
{ 
/**工作保障**/
对于(int i=0;i
位于
获取错误,因为
无法对object类型的表达式应用索引
抱歉。我忘记了在使用DataTables时必须显式地将行声明为
DataRow
。试试看。