Ошибка: в asp.net нет строки в позиции 0 - PullRequest
0 голосов
/ 16 апреля 2019

Я написал этот код, чтобы получить данные из 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;
    }

1 Ответ

0 голосов
/ 16 апреля 2019

Из сообщения об ошибке я бы сказал, что ваш запрос не возвращает никаких строк.

Попробуйте поставить точку останова сразу после присвоения query и скопируйте строку в окно запроса в SQL Server Management Studio, чтобы увидеть, возвращаются ли какие-либо строки данных.

Вероятно, он не возвращает никаких строк. Отлаживайте свой запрос, пока не узнаете, что у вас есть запрос, возвращающий данные.

Кроме того, помимо помещения содержимого этой функции в блок try / catch, я бы обернул все строки, использующие ds.Tables["Trailer"].Rows[0], в блок if, что-то вроде if(ds.Tables["Trailer"].Rows.Count > 0){

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...