public void doldur()
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Odev.mdf;Integrated Security=True");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("Select * From ogrenciler Order By adsoyad ASC", con);
DataSet dts = new DataSet();
da.Fill(dts, "ogrenciler");
comboBox1.DataSource = dts.Tables["ogrenciler"];
comboBox1.ValueMember = "adsoyad";
comboBox1.DisplayMember = "adsoyad";
comboBox2.DataSource = dts.Tables["ogrenciler"];
comboBox2.ValueMember = "adsoyad";
comboBox2.DisplayMember = "adsoyad";
con.Close();
}
- combobox2 получает данные правильно -
private void ogrenci_Load(object sender, EventArgs e)
{
doldur();
}
- работает либо -
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
textBox7.Text = "";
textBox8.Text = "";
textBox9.Text = "";
textBox10.Text = "";
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Odev.mdf;Integrated Security=True");
con.Open();
SqlDataAdapter du = new SqlDataAdapter("Select * From ogrenciler Where adsoyad='"+ comboBox2.SelectedValue.ToString() +"'", con);
DataSet dy = new DataSet();
du.Fill(dy, "ogrenciler");
textBox7.Text = dy.Tables[0].Rows[0]["adsoyad"].ToString();
textBox8.Text = dy.Tables[0].Rows[0]["mail"].ToString();
textBox9.Text = dy.Tables[0].Rows[0]["sinif"].ToString();
textBox10.Text = dy.Tables[0].Rows[0]["sube"].ToString();
con.Close();
}
Здесь я получаю:
«Исключение типа« System.IndexOutOfRangeException »произошло в System.Data.dll, но не было обработано в коде пользователя» (в строке textbox7)
Я проверил свою таблицу, чтобы убедиться, что я написал правильный оператор SQL. (Все правильно)
Затем я понимаю, что мой dataadapter или набор данных не получает буквально никаких данных. Вот почему я не могу заполнить свои текстовые поля. Я пытался использовать datatable / rows.count, executetescalar, datareader / dr.read, executereader. Ничто из этого не сработало. Затем я начал подозревать о своем заявлении SQL.
Не знаю, как исправить. Новое в этом языке. Я задолбался. Пожалуйста, помогите мне с этим.
ps: этот код работал правильно 2 дня назад.
Редактировать 1: Я только что узнал, что если значение моего combobox2 включает буквы «ı, ş, ğ» (а мое первое значение включает «ş»), я получаю эту ошибку.