PDA

View Full Version : اين خط رو چرا گير ميده.cm.ExecuteNonQuery();



saman95
جمعه 02 مهر 1389, 10:44 صبح
با عرض سلام خدمت دوستان عزيز
راستش دارم يه فرم مي سازم كه ي سري اطلاعات رو بگيره و در پايگاه داده اكسس ذخيره كنه
واسه همين اول كار ارتباط بين پايگاه داده و برنامه رو انجام دادم كه اتصال برقرار شد و فيلدهاي جدولم رو در ديتا گريد ويو نشون داد
و بعد براي دكمه ي اينسرت فرمم كدهاي زير رو نوشتم
cm = new OleDbCommand("INSERT INTO sabtenameh(kod,name,famil,npedar,nroosta,takhte,kh abgah,vazne,zarfe,bimari,kelas,tells,tellh,aderes, akse),VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", cn);
cm.Parameters.Add("@kod",OleDbType.LongVarChar);
cm.Parameters.Add("@name",OleDbType.LongVarChar);
cm.Parameters.Add("@famil", OleDbType.LongVarChar);
cm.Parameters.Add("@npedar", OleDbType.LongVarChar);
cm.Parameters.Add("@nroosta", OleDbType.LongVarChar);
cm.Parameters.Add("@takhte", OleDbType.LongVarChar);
cm.Parameters.Add("@khabgah", OleDbType.LongVarChar);
cm.Parameters.Add("@vazne", OleDbType.LongVarChar);
cm.Parameters.Add("@zarfe", OleDbType.LongVarChar);
cm.Parameters.Add("@bimari", OleDbType.LongVarChar);
cm.Parameters.Add("@kelas", OleDbType.LongVarChar);
cm.Parameters.Add("@tells", OleDbType.LongVarChar);
cm.Parameters.Add("@tellh", OleDbType.LongVarChar);
cm.Parameters.Add("@aderes", OleDbType.LongVarChar);
cm.Parameters.Add("@akse", OleDbType.LongVarChar);
cm.Parameters["@kod"].Value = "123";
cm.Parameters["@name"].Value = "123";
cm.Parameters["@famil"].Value = "123";
cm.Parameters["@npedar"].Value = "123";
cm.Parameters["@nroosta"].Value = "123";
cm.Parameters["@takhte"].Value = "123";
cm.Parameters["@khabgah"].Value = "123";
cm.Parameters["@vazne"].Value = "123";
cm.Parameters["@zarfe"].Value = "123";
cm.Parameters["@bimari"].Value = "123";
cm.Parameters["@kelas"].Value = "123";
cm.Parameters["@tells"].Value = "123";
cm.Parameters["@tellh"].Value = "123";
cm.Parameters["@aderes"].Value = "123";
cm.Parameters["@akse"].Value = "123";
da.InsertCommand = cm;
cn.Open();
cm.ExecuteNonQuery();
ds.Clear();
da.Fill(ds,"sabtenameh");
cn.Close();
ولي نمي دونم چرا داره از اين خط ايراد ميگره
cm.ExecuteNonQuery();

csharpprogramer88
جمعه 02 مهر 1389, 11:33 صبح
دستور را بين تگ code قرار بده و بطور كامل بنويس تا بهتر دوستان بررسي كنند

aderes, akse),VALUES(?,?,?,?,?,?,

, بعد از پرانتز اضافي هست پاكش كن
؟ براي چي هست ؟

peymanjon
جمعه 02 مهر 1389, 11:45 صبح
علت های مختلفی داره ، شاید پارامتر هایی که نوشتی با پارامترهای query همخوانی نداره ، و یا مقداری که داری تو پارامتر میفرستی با نوع فیلد دیتابیست همخوانی نداره و یکی نیست و ...
متن error را اینجا بذار تا بیشتر کمکت کنیم.

Encomp_Amini
جمعه 02 مهر 1389, 12:51 عصر
با سلام.
سه خطا در دستور Insert وجود دارد که در تصویر زیر این خطاها مشخص شده است.
هم چنین قبل از دستور


da.Fill(ds, "sabtenameh");

باید دستور Select را بنویسید و


da.SelectCommand = cm;

را نیز اضافه سپس da را Fill کنید.

البته من با Oledb تا به حال کار نکردم اما در زیر کد مربوطه را با SQL برایتان می گذارم.


SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=Test_;Integrated Security=True;Pooling=False");
SqlCommand cm = new SqlCommand();
cm.CommandText = "INSERT INTO sabtenameh(kod,name,famil,npedar,nroosta,takhte,kh abgah,vazne,zarfe,bimari,kelas,tells,tellh,aderes, akse) VALUES(@kod,@name,@famil,@npedar,@nroosta,@takhte, @khabgah,@vazne,@zarfe,@bimari,@kelas,@tells,@tell h,@aderes,@akse)";
cm.Connection = cn;
cm.Parameters.Add("@kod", SqlDbType.NVarChar);
cm.Parameters.Add("@name", SqlDbType.NVarChar);
cm.Parameters.Add("@famil", SqlDbType.NVarChar);
cm.Parameters.Add("@npedar", SqlDbType.NVarChar);
cm.Parameters.Add("@nroosta", SqlDbType.NVarChar);
cm.Parameters.Add("@takhte", SqlDbType.NVarChar);
cm.Parameters.Add("@khabgah", SqlDbType.NVarChar);
cm.Parameters.Add("@vazne", SqlDbType.NVarChar);
cm.Parameters.Add("@zarfe", SqlDbType.NVarChar);
cm.Parameters.Add("@bimari", SqlDbType.NVarChar);
cm.Parameters.Add("@kelas", SqlDbType.NVarChar);
cm.Parameters.Add("@tells", SqlDbType.NVarChar);
cm.Parameters.Add("@tellh", SqlDbType.NVarChar);
cm.Parameters.Add("@aderes", SqlDbType.NVarChar);
cm.Parameters.Add("@akse", SqlDbType.NVarChar);
cm.Parameters["@kod"].Value = "123";
cm.Parameters["@name"].Value = "123";
cm.Parameters["@famil"].Value = "123";
cm.Parameters["@npedar"].Value = "123";
cm.Parameters["@nroosta"].Value = "123";
cm.Parameters["@takhte"].Value = "123";
cm.Parameters["@khabgah"].Value = "123";
cm.Parameters["@vazne"].Value = "123";
cm.Parameters["@zarfe"].Value = "123";
cm.Parameters["@bimari"].Value = "123";
cm.Parameters["@kelas"].Value = "123";
cm.Parameters["@tells"].Value = "123";
cm.Parameters["@tellh"].Value = "123";
cm.Parameters["@aderes"].Value = "123";
cm.Parameters["@akse"].Value = "123";
da.InsertCommand = cm;
cn.Open();
cm.ExecuteNonQuery();
ds.Clear();
cm.CommandText = "Select * From sabtenameh";
da.SelectCommand = cm;
da.Fill(ds, "sabtenameh");
cn.Close();