2015-08-18 2 views
0

Мой код для обработки запроса вставки:Вставка с помощью ListView в C#

for (int i = 0; i <= ListView1.Items.Count - 1; i++) 
     { 
      con = new OleDbConnection(cn); 

      string cd = "INSERT INTO ProductSold(ID, invoiceID, description, rate, ps_quantity, ps_mrp, free, totalamount) VALUES (@ID,'" + txtInvoiceNo.Text + "',@description,@Rate,@Quantity,@MRP,@free,@Totalamount)"; 
      cmd = new OleDbCommand(cd); 
      cmd.Connection = con; 
      cmd.Parameters.AddWithValue("InvoiceNo", txtInvoiceNo.Text); 
      cmd.Parameters.AddWithValue("ID", ListView1.Items[i].SubItems[0].Text); 
      cmd.Parameters.AddWithValue("description", ListView1.Items[i].SubItems[1].Text); 
      cmd.Parameters.AddWithValue("Rate", ListView1.Items[i].SubItems[5].Text); 
      cmd.Parameters.AddWithValue("Quantity", ListView1.Items[i].SubItems[2].Text); 
      cmd.Parameters.AddWithValue("MRP", ListView1.Items[i].SubItems[3].Text);     
      cmd.Parameters.AddWithValue("free", ListView1.Items[i].SubItems[4].Text); 
      cmd.Parameters.AddWithValue("Totalamount", ListView1.Items[i].SubItems[6].Text); 


      con.Open(); 
      cmd.ExecuteNonQuery(); `enter code here`/*error*/ 
      con.Close(); 
     } 

Ошибка: вставить ошибки таблицы на несоответствие данных по критериям?

+1

проблемы с Querry является то, что вы не принимая во внимание тип значений, которые вы пытаетесь вставить. Все значения, которые вы пытаетесь поместить, имеют строку типа, но поля в базе данных имеют разные типы. Рассмотрим некоторую обработку значений. – Gnqz

ответ

0

Возможно, вы сталкиваетесь с типами значений параметров, для некоторых РСУБД они должны быть того же типа, что и поле, к которому они относятся (поле ID может быть целым полем, но вы используете строковое значение из текстовое поле для параметра ID

КСТАТИ:... вы открываете новое соединение для каждой записи в вашем списке Переместить жулик объявление/задание из цикла

Смежные вопросы