PDA

View Full Version : علت درست نبودن این کد چیه؟



salehvasaleh
جمعه 15 مرداد 1389, 18:23 عصر
دوستان من برای حذف از یک رکورد از دیتابیس کد زیر رو نوشتم:


if (dataGridView1.Rows.Count == 0)
return;
if (MessageBox.Show(" ", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
return;
SqlConnection sqlcn = new SqlConnection(s);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlcn;
cmd.CommandText = "Delete from pa where mozoeh=@mozoeh";
mozoeh = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
cmd.Parameters.AddWithValue("@mozoeh", mozoeh);
if (sqlcn.State == ConnectionState.Open)
sqlcn.Close();
sqlcn.Open();
cmd.ExecuteNonQuery();
if (sqlcn.State == ConnectionState.Open)
sqlcn.Close();



اما موقع اجرا شدن ارور زیر رو می ده می شه لطف کنید بگید مشکل کجاست؟ممنون
http://up.iranblog.com/Files/c9d6fb77cc0d4919913b.png

mmd2009
جمعه 15 مرداد 1389, 18:51 عصر
با سلام

کد زیر رو بذار جای قبلیه مشکلت حل میشه



mozoeh = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.tostring());

salehvasaleh
جمعه 15 مرداد 1389, 19:03 عصر
با سلام

کد زیر رو بذار جای قبلیه مشکلت حل میشه



mozoeh = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.tostring());

متاسفانه باز هم همون ارور قبلی رو گرفت. راهی دیگه هست؟

zahedpour
جمعه 15 مرداد 1389, 19:11 عصر
دوستان من برای حذف از یک رکورد از دیتابیس کد زیر رو نوشتم:


if (dataGridView1.Rows.Count == 0)
return;
if (MessageBox.Show(" ", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
return;
SqlConnection sqlcn = new SqlConnection(s);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlcn;
cmd.CommandText = "Delete from pa where mozoeh=@mozoeh";
mozoeh = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
cmd.Parameters.AddWithValue("@mozoeh", mozoeh);
if (sqlcn.State == ConnectionState.Open)
sqlcn.Close();
sqlcn.Open();
cmd.ExecuteNonQuery();
if (sqlcn.State == ConnectionState.Open)
sqlcn.Close();

اما موقع اجرا شدن ارور زیر رو می ده می شه لطف کنید بگید مشکل کجاست؟ممنون
http://up.iranblog.com/Files/c9d6fb77cc0d4919913b.png

سلام.

نوع فيلد mozoeh تو ديتابيستون چيه؟

mmd2009
شنبه 16 مرداد 1389, 00:18 صبح
این خط رو واسه این گذاشتید که وقتی روی یک ردیف کلیک کردید مقدار سلول 0 تو متغیر mozoeh قرار بگیره ؟؟

و مطمئنا باید mozoeh یک متغیر از نوع int 16 باشه درسته ؟

salehbagheri
شنبه 16 مرداد 1389, 02:18 صبح
این خطا زمانی رخ میده که مقدار ورودی به متد ToInt16 در کلاس Convert خالی (null) باشه یا چیزی غیر از عدد باشه!

لطفاً این مورد رو حتماً بررسی کنید. (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value)