错误:asp.net中的位置0没有行

问题描述 投票:-1回答:1

我编写了这段代码来从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;
    }
asp.net sql-server
1个回答
0
投票

从错误消息,我会说您的查询不返回任何行。

尝试在分配给queryand之后立即将断点复制到SQL Server Management Studio的查询窗口中,以查看是否有任何数据行返回。

它可能不会返回任何行。调试您的查询,直到您知道有一个返回数据。

另外,除了将此函数的内容放在try / catch块中之外,我还会将所有使用ds.Tables["Trailer"].Rows[0]的行包装在if块中,类似于if(ds.Tables["Trailer"].Rows.Count > 0){

© www.soinside.com 2019 - 2024. All rights reserved.