Member 12742983 Ответов: 1

Обновление двух таблиц одной кнопкой


у меня есть две разные таблицы, и я хочу обновить эти две таблицы одной кнопкой.....
моя кнопка работает только одна таблица обновляется другая таблица не обновляется может у плз любой...

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

private void button2_Click(object sender, EventArgs e)
      {
         cmd = new OleDbCommand("update InvoiceItems set Quantity = '" + txtQty.Text + "',UOM = '" + txtUOM.Text + "',UnitPrice ='" + txtUnitPrice.Text + "',GrossAmount ='" + txtGrossAmount.Text + "',VAT = '" + txtVAT.Text + "',VatAmount ='" + txtVatAmount.Text + "',Total ='" + txtTotal.Text + "' where InvoiceItemId = " + txtInvoiceNo.Text + "", conn);
          conn.Open();
         cmd.ExecuteNonQuery();
             cmd = new OleDbCommand("update Products set ProductName = '" + txtProductName.Text + "' where ProductId =" + txtpid.Text + "",conn);

        cmd.ExecuteNonQuery();

         MessageBox.Show("Sucess");
          conn.Close();
         // DisplayData();

          conn.Open();
          DataTable dt = new DataTable();
          // adapter = new OleDbDataAdapter("select * from InvoiceItems where InvoiceNumber =" + txtInvoiceNo.Text + "", conn);
          string query = "SELECT InvoiceNumber,ProductName,Quantity,UOM,UnitPrice,GrossAmount,VAT,VatAmount,Total FROM  InvoiceItems INNER JOIN Products ON InvoiceItems.ProductId = Products.ProductId where InvoiceItems.InvoiceNumber= " + txtInvoiceNo.Text + "";

          adapter = new OleDbDataAdapter(query, conn);
          adapter.Fill(dt);
          dataGridView1.DataSource = dt;

          conn.Close();

          ClearData();

      }

1 Ответов

Рейтинг:
2

Suvendu Shekhar Giri

Может быть, потому, что ваш запрос содержит синтаксические ошибки-

cmd = new OleDbCommand(""update InvoiceItems set Quantity = '" + txtQty.Text +"';,UOM = '" + txtUOM.Text + "',UnitPrice ='" + txtUnitPrice.Text + "',GrossAmount ='" + txtGrossAmount.Text + "',VAT = '" + txtVAT.Text + "',VatAmount ='" + txtVatAmount.Text + "',Total ='" + txtTotal.Text + "' where InvoiceItemId = " + txtInvoiceNo.Text + "", conn);

-- ""update.. должно быть "update..
-- Quantity = '" + txtQty.Text +"';,, здесь не требуется точка с запятой, и если это числовой столбец типа данных, то одинарная кавычка также не требуется, так что должно быть Quantity = " + txtQty.Text +",
-- Одинарные кавычки не требуются и для других столбцов, таких как UnitPrice, GrossAmount, VatAmount , Total и т. д.
Очень очень важно:
Ваш код уязвим для SQLInjection[^]
Пожалуйста, следуйте приведенным ниже ссылкам, чтобы узнать, как предотвратить SQL-инъекцию-
Как: защита от SQL-инъекций в ASP.NET[^]
Атаки с использованием SQL-инъекций, его примеры и профилактики механизмов и методов в ASP.Net[^]

Надеюсь, это поможет :)