سلام بچه ها من دارم برنامه حسابداری برای یک فروشگاه مینویسم...
در قسمت صندوق فروشگاه کاربر کالای خودشو سرچ میزنه و انتخاب میکنه ، هر تعداد کالا که انتخاب کنه درون یک دیتاگریدویو ردیف به ردیف( نام کالا ، تعداد ، قیمت فروش) میشینه ،
وقتی کاربر دکمه تسویه میزنه کل اطلاعات دیتاگرید ویو رو ردیف به ردیف درون sql ذخیره میکنه .!

حالا مشکلم اینه :

میخام وقتی تسویه زد و ذخیره کرد بیاد تک تک کالا ها به اندازه تعدادی که درون صندوق (دیتاگریدویو ) وارد کرده و فروخته از انبارش کم شه .

کد ذخیرمو اینجوری نوشتم :


SqlConnection M = new SqlConnection("Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
M.Open();
int t = dataGridView1.Rows.Count;
for (int i = 0; i <= t - 1; i++)
{


String ss = string.Format("insert into sandogh values(N'{0}','{1}','{2}','{3}','{4}')", dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[4].Value);
SqlCommand comm = new SqlCommand(ss, M);
comm.ExecuteNonQuery();



string conn = (@"Data Source=.;Initial Catalog=AdelShope;Integrated Security=True");
var com = new SqlCommand("SELECT tedad FROM kala WHERE name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", M);
var h = com.ExecuteScalar();
var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value));
SqlConnection objsqlconn = new SqlConnection(conn);
objsqlconn.Open();


SqlCommand objcmd = new SqlCommand("Update kala set tedad=@tedad where name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'", objsqlconn);
objcmd.Parameters.AddWithValue("@tedad", result);
objcmd.ExecuteNonQuery();


}


فرم ذخیره میشه ولی تعداد فقط ردیف اول درست کم میکنه و بقیه ردیف ها هم مثل ردیف اول تغییر میده( تعداد همه کالا ها در انبار یکی میشه و خراب میشه...) !!!

لطفا راهنمایی کنید چجوری کد بنویسم که ردیف به ردیف با کالا درون انبار چک کنه و جداگانه تعداد وارد شده در صندوق(دیتاگریدویو) از تعداد کالا در انبار کم کنه ؟؟؟

تشکر