【发布时间】:2017-06-20 06:52:20
【问题描述】:
我无法在带有标签的表格中使用 if-else 显示不存在的行。
我目前使用此parentsID 登录(以New 会话登录)有两个孩子(两行),dt.Rows[0] 和dt.Rows[1] 没有问题,除了我遇到错误dt.Rows[2] 有这个Error: System.IndexOutOfRangeException: There is no row at position 2. 至于parentsID 有三个孩子,没有错误。同样,如果我使用只有一个child 的parentsID 登录,那么它会显示There is no row at position 1.
我该如何解决这个问题?我的英文不好,如有语法错误,请见谅。
我有一张名为family 的桌子,里面有所有人。所有行都有childID(他们的用户名)和parentsID。一些child 可以是其他childs 的parent。
try
{
string query = "select * from family where parentsID = '" + Session["New"] + "'";
using (OleDbCommand cmd3 = new OleDbCommand(query, con))
{
con.Open();
OleDbDataReader myReader3 = null;
myReader3 = cmd3.ExecuteReader();
if (myReader3.HasRows)
{
DataTable dt = new DataTable();
dt.Load(myReader3);
if (!DBNull.Value.Equals(dt.Rows[0]["childID"]))
{
label1.Text = dt.Rows[0]["childID"].ToString();
label2.Text = "$" + Convert.ToDecimal(dt.Rows[0]["childNetWorth"]).ToString("N2");
label3.Text = dt.Rows[0]["childName"].ToString();
}
else
{
label1.Text = "-ID-";
label2.Text = "-";
label3.Text = "-";
}
if (!DBNull.Value.Equals(dt.Rows[1]["childID"]))
{
label5.Text = dt.Rows[1]["childID"].ToString();
label6.Text = "$" + Convert.ToDecimal(dt.Rows[1]["childNetWorth"]).ToString("N2");
label7.Text = dt.Rows[1]["childName"].ToString();
}
else
{
label5.Text = "-ID-";
label6.Text = "-";
label7.Text = "-";
}
if (!DBNull.Value.Equals(dt.Rows[2]["childID"]))
{
label9.Text = dt.Rows[2]["childID"].ToString();
label10.Text = "$" + Convert.ToDecimal(dt.Rows[2]["childNetWorth"]).ToString("N2");
label11.Text = dt.Rows[2]["childName"].ToString();
}
else
{
label9.Text = "-ID-";
label10.Text = "-";
label11.Text = "-";
}
}
}
}
catch (Exception ex)
{
Response.Write("Error: " + ex.ToString());
}
finally
{
con.Close();
}
【问题讨论】:
标签: c# ms-access-2016