Я могу обновить только 1 строку, но если две или несколько строк, когда я обновляю все значения, то все равно Я не знаю, в чем ошибка, я вставил sqlcommand внутри циклаОбновление нескольких строк в datagridview все равно
string date = dt_date.Value.ToString("yyyy-MM-dd");
SqlConnection sc = new SqlConnection(ConfigurationManager.ConnectionStrings["POSdb"].ConnectionString);
string strQry = "UPDATE CounterChecking " +
"SET part_no = @c0,po_no = @po_no,invoice = @invoice,part_name = @c1," +
"date = @date,color = @c2,qty_ordered = @c3,qty_for_delivery = @c4,qty_recieved = @c5," +
"variance = @c6,unit_price = @c7, total = @c8, remarks = @c9 " +
"WHERE po_no= '" + cb_po_search.Text + "'";
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (!row.IsNewRow)
{
sc.Open();
SqlCommand scmd = new SqlCommand(strQry, sc);
scmd.Parameters.AddWithValue("@c0", row.Cells[0].Value);
scmd.Parameters.Add("@po_no", SqlDbType.VarChar).Value = tb_ponumber2.Text;
scmd.Parameters.Add("@invoice", SqlDbType.VarChar).Value = tb_invoice2.Text;
scmd.Parameters.AddWithValue("@c1", row.Cells[1].Value);
scmd.Parameters.Add("@date", SqlDbType.Date).Value = date;
scmd.Parameters.AddWithValue("@c2", row.Cells[2].Value);
scmd.Parameters.AddWithValue("@c3", row.Cells[3].Value);
scmd.Parameters.AddWithValue("@c4", row.Cells[4].Value);
scmd.Parameters.AddWithValue("@c5", row.Cells[5].Value);
scmd.Parameters.AddWithValue("@c6", row.Cells[6].Value);
scmd.Parameters.AddWithValue("@c7", row.Cells[7].Value);
scmd.Parameters.AddWithValue("@c8", row.Cells[8].Value);
scmd.Parameters.AddWithValue("@c9", row.Cells[9].Value);
scmd.ExecuteNonQuery();
scmd.Dispose();
sc.Close();
MessageBox.Show("Successfully Updated!");}
sc.Close();
}
ошибки нет, но это дает мне все те же данные, каждая строка
похоже, что вы обновляете один и тот же ряд строк внутри цикла, ваше условие WHERE фиксировано: «WHERE po_no = '» + cb_po_search.Text + "'"; –
Я могу добавить больше значения в сетку данных в одном поле po 1: * –
В этом случае вам также нужен еще один уникальный столбец в таблице CounterChecking, а что там PK? Добавьте его в предложение WHERE. –