我编写了这段代码以从gridview获取数据以显示控件,但失败了:
位置0没有行。
在线:
txtSTT.Text = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(0).ToString();
完整代码:
protected void btnSua_Click(object sender, EventArgs e)
{
string STT = ((LinkButton)sender).CommandArgument;
SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-R8LG380\SQLEXPRESS;Initial Catalog=PHIM;Integrated Security=True");
string query = "SELECT * FROM Trailer WHERE STT = '" + STT + "'";
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Trailer");
txtSTT.Text = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(0).ToString();
txtMaTrailer.Text = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(1).ToString();
cmbMaPhim.SelectedValue = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(2).ToString();
txtUrlTrailer.Text = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(3).ToString();
txtGhiChu.Text = ds.Tables["Trailer"].Rows[0].ItemArray.GetValue(4).ToString();
txtSTT.ReadOnly = true;
txtSTT.Visible = true;
lbSTT.Visible = true;
}
答案 0 :(得分:0)
从错误消息中,我会说您的查询没有返回任何行。
尝试在分配给query
后立即放置一个断点,然后将字符串复制到SQL Server Management Studio的查询窗口中,以查看是否有任何数据行返回。
它可能不返回任何行。调试查询,直到您知道有一个返回数据的查询为止。
此外,除了将此函数的内容放入try / catch块外,我还将在ds.Tables["Trailer"].Rows[0]
之类的if块中包装所有使用if(ds.Tables["Trailer"].Rows.Count > 0){
的行,例如|