Member 12603716 Ответов: 1

Почему мой код не сохраняет данные в базе данных и не показывает их в 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]
попробуйте удалить это и проверьте.

1 Ответов

Рейтинг:
4

Richard MacCutchan

Вы должны начать с проверки возвращаемого значения вашего вызова Свойство sqlcommand.Метод ExecuteNonQuery (System. Data.SqlClient)[^], чтобы проверить, сработала ли ваша вставка.