我收到错误:
第4位没有行
这意味着DataTable
没有我指定的行号。
以下是一个例子:
protected void btnNext_Click1(object sender, EventArgs e)
{
if (Session["ClickCount"] == null)
Session["ClickCount"] = 0;
int ClickCount = Convert.ToInt32(Session["ClickCount"]) + 1;
Session["ClickCount"] = ClickCount;
DAL.TicketsDataSetTableAdapters.TicketDetailsTableAdapter eobj = new DAL.TicketsDataSetTableAdapters.TicketDetailsTableAdapter();
DataTable dt = new DataTable();
dt = eobj.GetTicketUpdates(txtSupportRef.Text);
if (ClickCount > dt.Rows.Count)
{
// HOW DO WE HANDLE THE ERROR?
}
txtNextStep.Text = dt.Rows[ClickCount - 1]["NextStep"].ToString();
}
我的DataTable
中有3行,如果再次单击该按钮,则会显示上面的错误消息。
处理此错误消息的最佳方法是什么?
我应退出if statement
,然后向用户显示消息吗?
答案 0 :(得分:1)
您可以禁用 btnNext
按钮:
if (ClickCount > dt.Rows.Count)
{
btnNext.Enabled= false;
// Also with a message
}
else
{
btnNext.Enabled= true;
txtNextStep.Text = dt.Rows[ClickCount - 1]["NextStep"].ToString();
}
答案 1 :(得分:1)
您正在使用ClickCount
检查if (ClickCount > dt.Rows.Count)
但访问循环外的值,请按以下方式使用:
if (ClickCount < dt.Rows.Count)
{
txtNextStep.Text = dt.Rows[ClickCount - 1]["NextStep"].ToString();
}
else{btnNext.Enabled=false;}
答案 2 :(得分:0)
在使用“Clickcount”
之前进行适当的检查if (ClickCount > dt.Rows.Count)
{
// show a proper message to user
}
else if (ClickCount < dt.Rows.Count)
{
//
}
else
{
//
}