PDA

View Full Version : خطای دستور insert هنگام اضافه کردن یه رکورد به بانک اکسس



dorna20-30
دوشنبه 04 اردیبهشت 1391, 13:03 عصر
سلام.
من می خوام داده های داخل gridview رو وارد دیتابیسم کنم.از دستور insert استفاده کردم ولی خطا میده.کدشو میزارم ببینید ایرادی داره؟:عصبانی++:

for (int count = 0; count < dataGridView1.Rows.Count; count++)
{

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
string namekala = dataGridView1.Rows[count].Cells["namekala"].Value.ToString();
OleDbCommand comm = new OleDbCommand();
comm.Connection = con;
comm.CommandText = "INSERT INTO detailsprint (id,name-kala) VALUES (@p1,@p2)";
comm.Parameters.Clear();
comm.Parameters.AddWithValue("@p1", ID);
comm.Parameters.AddWithValue("@p2", namekala);
con.Open();
comm.ExecuteNonQuery();
con.Close();
}
خطایی که میده:
syntax error in insert into statment

gwbasic
دوشنبه 04 اردیبهشت 1391, 13:38 عصر
for (int count = 0; count < dataGridView1.Rows.Count; count++)
{

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
string namekala = dataGridView1.Rows[count].Cells["namekala"].Value.ToString();
OleDbCommand comm = new OleDbCommand();
comm.Connection = con;
comm.CommandText = "INSERT INTO detailsprint (id,[name-kala]) VALUES (@p1,@p2)";
comm.Parameters.Clear();
comm.Parameters.AddWithValue("@p1", ID);
comm.Parameters.AddWithValue("@p2", namekala);
con.Open();
comm.ExecuteNonQuery();
con.Close();
}


البته جواب این سوال رو کامل دادم ولی چون چند بار کروم کرش کرد پرید فعلا اینو امتحان کنید

dorna20-30
دوشنبه 04 اردیبهشت 1391, 13:47 عصر
for (int count = 0; count < dataGridView1.Rows.Count; count++)
{

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
string namekala = dataGridView1.Rows[count].Cells["namekala"].Value.ToString();
OleDbCommand comm = new OleDbCommand();
comm.Connection = con;
comm.CommandText = "INSERT INTO detailsprint (id,[name-kala]) VALUES (@p1,@p2)";
comm.Parameters.Clear();
comm.Parameters.AddWithValue("@p1", ID);
comm.Parameters.AddWithValue("@p2", namekala);
con.Open();
comm.ExecuteNonQuery();
con.Close();
}


البته جواب این سوال رو کامل دادم ولی چون چند بار کروم کرش کرد پرید فعلا اینو امتحان کنید
ممنون خطای قبلی رو نمیده ولی یه خطای جدید میده:
قسمت پر کردن ID :
Object reference not set to an instance of an object.

gwbasic
دوشنبه 04 اردیبهشت 1391, 15:27 عصر
اگه بتونید debug کنید راحت این موضوع رو متوجه می شید. هر جایی که احتمال null بودن وجود داره قبلش باید شرط null بودن رو چک کنید

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();

در کد بالا قبل از ToString کردن باید چک کنید که value مقدارش null نباشه! اگه null هست باید پیغام مناسب بدین که ID مقدار دهی نشده است

dorna20-30
یک شنبه 10 اردیبهشت 1391, 11:52 صبح
اگه بتونید debug کنید راحت این موضوع رو متوجه می شید. هر جایی که احتمال null بودن وجود داره قبلش باید شرط null بودن رو چک کنید

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();

در کد بالا قبل از ToString کردن باید چک کنید که value مقدارش null نباشه! اگه null هست باید پیغام مناسب بدین که ID مقدار دهی نشده است
بله درسته خطا به دلیل null بودن رخ می ده.ولی متوجه نمی شم.من قبلا اطلاعات رو از طریق یه button وارد دیتاگرید کردم و می خوام توسط یه کلید دیگه این اطلاعات رو وارد دیتابیسم کنم.دیتاگریدم پر شده نمیدونم چرا خطای null بودن میده؟