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
。试试看。