الان شما مطمئنی این کد درست کار میکنه؟var result = Convert.ToString(Convert.ToInt32(h) - Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value));
اصلا توی این خط شما باید خطا داشته باشی، شما داری مقدار سلول یکم رو که همون ستون نام کالا هست رو از مقدار کل کالا کم میکنی
ویرایش:
بعد شما توی این خط:"SELECT tedad FROM kala WHERE name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
داری کد کالا رو برای شرط نام کالا استفاده میکنی
و باز هم اینجا:"Update kala set tedad=@tedad where name LIKE N'%" + dataGridView1.Rows[i].Cells[0].Value + "%'"
با این اوصاف فک کنم خودت متوجه مشکل شدی و نیازی نیست که بگم چطوری اینارو برطرف کنی، اگه بازم متوجه نشدی بگو