خطای دستور insert هنگام اضافه کردن یه رکورد به بانک اکسس
سلام.
من می خوام داده های داخل 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
نقل قول: خطای دستور 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();
}
البته جواب این سوال رو کامل دادم ولی چون چند بار کروم کرش کرد پرید فعلا اینو امتحان کنید
نقل قول: خطای دستور insert هنگام اضافه کردن یه رکورد به بانک اکسس
نقل قول:
نوشته شده توسط
gwbasic
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.
نقل قول: خطای دستور insert هنگام اضافه کردن یه رکورد به بانک اکسس
اگه بتونید debug کنید راحت این موضوع رو متوجه می شید. هر جایی که احتمال null بودن وجود داره قبلش باید شرط null بودن رو چک کنید
string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
در کد بالا قبل از ToString کردن باید چک کنید که value مقدارش null نباشه! اگه null هست باید پیغام مناسب بدین که ID مقدار دهی نشده است
نقل قول: خطای دستور insert هنگام اضافه کردن یه رکورد به بانک اکسس
نقل قول:
نوشته شده توسط
gwbasic
اگه بتونید debug کنید راحت این موضوع رو متوجه می شید. هر جایی که احتمال null بودن وجود داره قبلش باید شرط null بودن رو چک کنید
string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
در کد بالا قبل از ToString کردن باید چک کنید که value مقدارش null نباشه! اگه null هست باید پیغام مناسب بدین که ID مقدار دهی نشده است
بله درسته خطا به دلیل null بودن رخ می ده.ولی متوجه نمی شم.من قبلا اطلاعات رو از طریق یه button وارد دیتاگرید کردم و می خوام توسط یه کلید دیگه این اطلاعات رو وارد دیتابیسم کنم.دیتاگریدم پر شده نمیدونم چرا خطای null بودن میده؟