PDA

View Full Version : مشکل در ثبت از گریدویو در بانک



onlinedays
چهارشنبه 17 فروردین 1390, 13:24 عصر
سلام این کد رو برای ثبت از گریدویو در بانک نوشتم ولی فقط رکورد اول رو تکراری به تعداد رکوردهای موجود ثبت میکنه !
یعنی رکورد اول رو که از گریدویو میخونه به رکورد بعدی next نمیشه.
خواهشا سریع راهنمایی کنید.ممنون



SqlConnection objconnection = new SqlConnection(connection);


SqlCommand objcommand=new SqlCommand();
for (int i = 1; i <= dataGridView1.RowCount; i++)
{
objcommand = new SqlCommand("INSERT INTO factorbuy(factorbuy_id,countfactor,customer_id,cus tomer_family,factorbuy_date,object_name,object_id, factorbuy_value,factorbuy_price_buy,factorbuy_pric e_sell,factorbuy_takhfif,factorbuy_des,factorbuy_a llsum,factorbuy_status_delete)VALUES(@factorbuy_id ,@countfactor,@customer_id,@customer_family,@facto rbuy_date,@object_name,@object_id,@factorbuy_value ,@factorbuy_price_buy,@factorbuy_price_sell,@facto rbuy_takhfif,@factorbuy_des,@factorbuy_allsum,0)", objconnection);
objcommand.Parameters.AddWithValue("@factorbuy_id" , dataGridView1.CurrentRow.Cells[0].Value.ToString());
objcommand.Parameters.AddWithValue("@countfactor", dataGridView1.CurrentRow.Cells[1].Value.ToString());
objcommand.Parameters.AddWithValue("@customer_id", dataGridView1.CurrentRow.Cells[2].Value.ToString());
objcommand.Parameters.AddWithValue("@customer_fami ly", dataGridView1.CurrentRow.Cells[3].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_dat e", dataGridView1.CurrentRow.Cells[4].Value.ToString());
objcommand.Parameters.AddWithValue("@object_name", dataGridView1.CurrentRow.Cells[5].Value.ToString());
objcommand.Parameters.AddWithValue("@object_id", dataGridView1.CurrentRow.Cells[6].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_val ue", dataGridView1.CurrentRow.Cells[7].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_pri ce_buy", dataGridView1.CurrentRow.Cells[8].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_pri ce_sell", dataGridView1.CurrentRow.Cells[9].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_tak hfif", dataGridView1.CurrentRow.Cells[10].Value.ToString());
//long mul = Convert.ToInt64(txtvalue.Text) * Convert.ToInt64(txtpricebuy.Text);
//long sub = mul - Convert.ToInt64(txttakhfif.Text);
//txtallprice.Text = sub.ToString();
objcommand.Parameters.AddWithValue("@factorbuy_all sum", dataGridView1.CurrentRow.Cells[11].Value.ToString());
objcommand.Parameters.AddWithValue("@factorbuy_des ", dataGridView1.CurrentRow.Cells[12].Value.ToString());
objconnection.Close();
objconnection.Open();
objcommand.ExecuteNonQuery();

ehsanara
چهارشنبه 17 فروردین 1390, 13:54 عصر
فکر کنم باید اینو بزاری
dataGridView1.Row[i]

یعنی به اینصورت
objcommand.Parameters.AddWithValue("@factorbuy_id" , dataGridView1.Rows[i].Cells[0].Value.ToString());

onlinedays
چهارشنبه 17 فروردین 1390, 18:23 عصر
این روشم نشد عزیز

shadi khanum
چهارشنبه 17 فروردین 1390, 19:52 عصر
این روشم نشد عزیز
اولا حلقه for رو از 0 شروع کن تا i<datagridview.rows.count و نه کوچیکتر مساوی و توی همه جاهایی که از currenrow استفاده کردی به جای CurrenRow بذار datagridview.rows[i] مشکلت حل میشه. ضمنا ابتدا و انتهای کدت try , Catch بذار که اگه برنامه به Error میخوره متوجه بشی که چی بوده

onlinedays
چهارشنبه 17 فروردین 1390, 21:08 عصر
object reference not set to an instance of an object

همین کارو کردم این ارور رو میگیره .خواهش میکنم ببینید مشکل کجاست؟

shadi khanum
چهارشنبه 17 فروردین 1390, 21:46 عصر
object reference not set to an instance of an object

همین کارو کردم این ارور رو میگیره .خواهش میکنم ببینید مشکل کجاست؟
این Error رو روی کدوم خط بهتون میده؟
اگه همه اون مارهارو کردین و باز هم Error میده اختمالا یا ایندکس ستونهاتون ایراد داره (یعنی کمتر از 13 تا ستون دارید) یا اینکه تو یکی از ردیفهای توی گریدتون value یکی از ستونهاتون nothing یا null و موقع tostring() کردن Error میده. در هر حال این Error واسه اینکه یه چیزی nothing یا null!