点击登录按钮后出现以下错误:
位置0没有行
具体来自Image3.ImageUrl = HDT.Rows[0]["image"].ToString();
行。
以下是社会表的数据库快照:
这行不清楚,所以错误是什么?什么是位置0正好
以下是我遇到错误的代码块:
DS_HOUSE.HOUSE_SELECTDataTable HDT = new DS_HOUSE.HOUSE_SELECTDataTable();
DS_HOUSETableAdapters.HOUSE_SELECTTableAdapter HAdapter = new
DS_HOUSETableAdapters.HOUSE_SELECTTableAdapter();
protected void Page_Load(object sender, EventArgs e)
{
UDT = UAdapter.Select_By_UID(Convert.ToInt32(Session["uid"].ToString()));
HDT = HAdapter.Select_By_SNAME_BLOCKNO(UDT.Rows[0]["societyname"].ToString(), Convert.ToInt32(UDT.Rows[0]["Houseid"].ToString()));
Image3.ImageUrl = HDT.Rows[0]["image"].ToString();
lblsname.Text = HDT.Rows[0]["sname"].ToString();
lblbno.Text = HDT.Rows[0]["blockno"].ToString();
lbltype.Text = HDT.Rows[0]["type"].ToString();
ViewState["HID"] = HDT.Rows[0]["HID"].ToString();
}
此外,我尝试将代码放在if块中
protected void Page_Load(object sender, EventArgs e)
{
if (HDT.Rows.Count > 0)
{
lblsell.Text = "";
UDT = UAdapter.Select_By_UID(Convert.ToInt32(Session["uid"].ToString()));
HDT = HAdapter.Select_By_SNAME_BLOCKNO(UDT.Rows[0]["societyname"].ToString(), Convert.ToInt32(UDT.Rows[0]["Houseid"].ToString()));
{
Image3.ImageUrl = HDT.Rows[0]["image"].ToString();
lblsname.Text = HDT.Rows[0]["sname"].ToString();
lblbno.Text = HDT.Rows[0]["blockno"].ToString();
lbltype.Text = HDT.Rows[0]["type"].ToString();
ViewState["HID"] = HDT.Rows[0]["HID"].ToString();
}
}
}
我能够登录但是我无法从社会表中检索细节。
答案 0 :(得分:0)
在以下行放置一个断点并进行调试:
Image3.ImageUrl = HDT.Rows[0]["image"].ToString();
然后,当断点高于线路时,快速观察 HDT 的值。
此外,if check if (HDT.Rows.Count > 0)
应位于Image3.ImageUrl = HDT.Rows[0]["image"].ToString();
填充 HDT 后,就是这样。
看起来 HDT 本身并未填充。
答案 1 :(得分:0)
从您的描述可以明显看出HDT不为空,但HTD.Rows是一个空集合,因此元素0不存在。