Как показать данные чека в строке datagridview на основе выбранного значения из выпадающего списка имя банка
У меня есть две таблицы счет, указанный в разделе а таблицы chequedetails обеих таблицах есть идентификатор банка.Я создал foreignkey в столбце bankid.Я вставил несколько записей в обе таблицы.Теперь у меня есть выпадающий список столбце bankname,accountno accounttype, начиная текстовое поле и поле со списком.И одним элементом управления datagridview.dridview это заполнить из таблицы chequedetails.
Теперь, если я выберу bankname в banknamecombobox accountno и account должен отображаться нормально.Теперь я хочу, чтобы на основе banknameselectedid показывают соответствующие строки показать в datagridview
который исходит из таблицы chequedetails.
Пожалуйста, помогите мне в этом.
Заранее спасибо.
Что я уже пробовал:
<pre> private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string abc = comboBox1.SelectedValue.ToString(); if (abc != "[select, select]" && abc != "select") { SqlConnection con = new SqlConnection(connection); con.Open(); SqlCommand cmd = new SqlCommand("SELECT [bank_Id], [bank_Accountno],bank_Accountype FROM bankdetails where bank_Id=@bank_Id",con); cmd.Parameters.AddWithValue("@bank_Id", comboBox1.SelectedValue.ToString()); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows.Count > 0) { txtAcntno.Text = dt.Rows[0]["bank_Accountno"].ToString(); cmbAcntype.Text = dt.Rows[0]["bank_Accountype"].ToString().Trim(); LoadDataGridView(); } } else if (comboBox1.SelectedIndex == 0) { txtAcntno.Text = ""; cmbAcntype.SelectedIndex = 0; } }
private void LoadDataGridView() { SqlConnection con = new SqlConnection(connection); SqlCommand cmd = new SqlCommand(" SELECT bank_Id,row_number() over(order by [bank_Id]) as SlNo,[bank_Chqstartno],[bank_Chqendno],case bank_Chqlvscount when 100 then 2 when 50 then 1 when 10 then 0 end as noofcheques ,bank_Chqlvscount,bank_Stat FROM [dbo].bankcheques where bank_Id=@bank_Id order by SlNo desc ", con); try { con.Open(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataTable dt = new DataTable(); da.Fill(dt); DataGridViewComboBoxColumn cmb = dgvwChqs.Columns["noofcheques"] as DataGridViewComboBoxColumn; cmb.DataSource = dt; cmb.DisplayMember = "bank_Chqlvscount"; cmb.ValueMember = "bank_Id"; cmb.HeaderText = "No. of Cheques"; dgvwChqs.DataSource = dt; con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
CHill60
Просто введите предложение WHERE в SQL cmd в LoadDataGridView. Вы уже показали, что умеете это делать. При необходимости вы можете передать выбранный банк в качестве параметра этой функции.
Member 13153537
банкноты Колум не было в чековом столе.Не могли бы вы подсказать мне, пожалуйста, как это сделать?
Заранее спасибо.
CHill60
В соответствии с вашим selectedindex измененным кодом
cmd.Parameters.AddWithValue("@bank_Id", comboBox1.SelectedValue.ToString());у вас уже есть bankid
CHill60
Если вы используете Ответить кнопка Я буду уведомлен когда вы ответите
Member 13153537
Когда я использовал этот код по крайней мере в первый раз, я получаю правильный ответ, а затем получил ошибку:"ССЫЛКА на объект не установлена на экземпляр объекта".
Команда sqlcommand cmd и = новая команда sqlcommand(" выберите bank_Id,функции row_number() над(приказ [bank_Id]) как сльно,[bank_Chqstartno],[bank_Chqendno],bank_Chqlvscount случае, если 100, то 2, Если 50 то 1, Когда 10 тогда 0 конец как noofcheques ,bank_Chqlvscount,bank_Stat От на [dbo].bankcheques где bank_Id=@приказ bank_Id по убыванию сльно ", кон);
УМК.Параметры.AddWithValue ("@bank_Id",
поле combobox1.SelectedValue.Метод toString());
Member 13153537
Большое спасибо.Это прекрасно работает для меня в первый раз. когда я меняю значение combobox во второй раз, я получаю ошибку "ССЫЛКА на объект не установлена на экземпляр объекта".
CHill60
Вам нужно отладить и найти, какой объект является нулевым. Мы не можем видеть весь ваш проект
Member 13153537
хорошо спасибо