Почему мой код не сохраняет данные в базе данных и не показывает их в datagridview?
Я хочу вставить текстовые поля броска данных в базу данных и показать их в datagridview при нажатии кнопки ok. но он не работает и не показывает никаких ошибок
ниже приведен код, который я пробовал
Что я уже пробовал:
private void btn_ok_Click(object sender, EventArgs e) { if (tb_itemCode.Text == "" || cb_itemName.Text == "") { System.Windows.Forms.MessageBox.Show("''Please Fill All Fileds'' "); } else { OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = @"insert into Invoices ([Item_Code], [Item_Name], ) values ('" + tb_itemCode.Text + "','" + cb_itemName.Text + "')"; try { conection.Open(); cmd.Connection = conection; cmd.ExecuteNonQuery(); conection.Close(); cleardata(); OleDbDataAdapter DA = new OleDbDataAdapter("SELECT * FROM Invoices where Item_Code='" + tb_itemCode.Text + "' ", conection); DataTable DT = new DataTable(); DA.Fill(DT); dgv_invoice.DataSource = null; dgv_invoice.DataSource = DT; dgv_invoice.Refresh(); } catch (Exception exp) { MessageBox.Show(CommonFunction.CommonError); } finally { conection.Close(); } } }
ZurdoDev
Все, что вам нужно сделать, это отладить его. Во-вторых, измените свой код на использование параметров, чтобы вы не были открыты для атак SQL-инъекций.
Karthik_Mahalingam
есть одна запятая рядом с [Item_Name]
попробуйте удалить это и проверьте.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]