Member 13876602 Ответов: 1

В ASP.NET и C# "исключение типа 'system.indexoutofrangeexception' произошло в system.data.dll но не был обработан в пользовательском коде.в позиции 0 нет строки."


Цитата:
я извлекаю данные из таблицы базы данных в веб-форме в asp.net и с#

Ошибка, которую я получаю:

- Исключение типа "система".IndexOutOfRangeException' произошло в System.Data.dll но не был обработан в пользовательском коде

Дополнительная информация: в позиции 0 нет строки."


Что я уже пробовал:

protected void btnsearch_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("SELECT * from registrationinfo WHERE registrationNumber = @registrationNumber", con);
        cmd.Parameters.AddWithValue("@registrationNumber", txtsearch.Text);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataTable dt = ds.Tables[0];
        {
            lblregistrationnumber.Text = dt.Rows[0]["registrationNumber"].ToString();
            txtadmissiondate.Text = dt.Rows[0]["admissionDate"].ToString();
            txtsession.Text = dt.Rows[0]["session"].ToString();
            txtstudentname.Text = dt.Rows[0]["studentName"].ToString();
            txtDOB.Text = dt.Rows[0]["studentDOB"].ToString();
            radiobtngender.SelectedValue = dt.Rows[0]["gender"].ToString();
            txtaddress.Text = dt.Rows[0]["address"].ToString();
            txtnationality.Text = dt.Rows[0]["nationality"].ToString();
            txtfathername.Text = dt.Rows[0]["fatherName"].ToString();
            txtmobile.Text = dt.Rows[0]["mobileNumber"].ToString();
            txtmailid.Text = dt.Rows[0]["email"].ToString();
            txtmothername.Text = dt.Rows[0]["motherName"].ToString();
            txtclass.Text = dt.Rows[0]["class"].ToString().Trim();
        }

1 Ответов

Рейтинг:
1

F-ES Sitecore

Скорее всего, ДТ.Строки не содержат никаких строк, так как запрос не вернул никаких данных.

Вы всегда должны проверять наличие строк в таблице, прежде чем пытаться получить к ним доступ (check dt.Rows.Count > 0), что остановит выброс исключения и позволит вам изящно обрабатывать его, когда данных нет. Однако если вы ожидаете данных в этом сценарии, то вам нужно будет проверить свои входные данные и данные в вашей базе данных, чтобы попытаться понять, почему ничего не было возвращено.