PDA

View Full Version : سوال: خطا در هنگام نمایش کوئری



farshadvl
شنبه 27 آبان 1391, 11:08 صبح
با سلام
من یک برنامه کوچک چند مدت پیش با sql server 2008 , سی شارپ نوشته بودم حالا اومدم بانکش رو اکسس کردم.همه کدها رو تغییر دادم و همه قسمت هاش کار میکنه به جز دو قسمت : آپدیت و فرم پرینت

یک دیتایست درست کردم و جدول مورد نیازم رو روی آن گذاشتم و کد کوئری آن در برنامه قبل این بود:
SELECT id, nameshakhs, family, codemelli, mobile, tell, address, khadamat, stardate, enddate, price, info
FROM person
WHERE (id = @id)

حالا که همین کد رو برای جدول و دیتاست جدیده میزارم به @id گیر میده و نمیزاره به صورت پارامتری باشه
مشکل از کجاست؟

واسه آپدیت هم از کد زیر استفاده میکنم اما هیچ رکوردی آپدیت نمیشه
cmd = new OleDbCommand("UPDATE person SET person.[nameshakhs]=@1, person.[family]=@2, person.[codemelli]=@3, person.[mobile]=@4, person.[tell]=@5, person.[address]=@6, person.[khadamat]=@7, person.[stardate]=@8, person.[enddate]=@9, person.[price]=@10, person.[info]=@11 WHERE person.[id]=@id", sc);
OleDbParameter[] _parm = new OleDbParameter[12];
_parm[0] = new OleDbParameter("@id", OleDbType.Integer) { Value = Int32.Parse(txtID.Text) };
_parm[1] = new OleDbParameter("@1", OleDbType.VarChar) { Value = txtName.Text };
_parm[2] = new OleDbParameter("@2", OleDbType.VarChar) { Value = txtFamily.Text };
_parm[3] = new OleDbParameter("@3", OleDbType.VarChar) { Value = txtCode.Text };
_parm[4] = new OleDbParameter("@4", OleDbType.VarChar) { Value = txtmob.Text };
_parm[5] = new OleDbParameter("@5", OleDbType.VarChar) { Value = txttell.Text };
_parm[6] = new OleDbParameter("@6", OleDbType.VarChar) { Value = txtaddress.Text };
_parm[7] = new OleDbParameter("@7", OleDbType.Integer) { Value = type };
_parm[8] = new OleDbParameter("@8", OleDbType.VarChar) { Value = sday.Text + smonth.Text + txtvsyear.Text };
_parm[9] = new OleDbParameter("@9", OleDbType.VarChar) { Value = eday.Text + emonth.Text + txtveyear.Text };
_parm[10] = new OleDbParameter("@10", OleDbType.VarChar) { Value = txtprice.Text };
_parm[11] = new OleDbParameter("@11", OleDbType.VarChar) { Value = txtmemo.Text };
cmd.Parameters.AddRange(_parm);


try
{
sc.Open();
cmd.ExecuteNonQuery();
lblmsg.Text = "رکورد ويرايش شد";
RefreshDatagrid();
sc.Close();
}
catch (Exception ex)
{
MessageBox.Show("بروز خطا" + ex.Message);
}

mhq1368
شنبه 27 آبان 1391, 11:55 صبح
سلام
شما یه شرط گذاشتین دیگه پس باید @id رو با یه چیزی پر کنید دیگه

farshadvl
شنبه 27 آبان 1391, 11:57 صبح
پر کردنشو مشکلی ندارم الان که میخواهم دیتاست رو سیو کنم خطا میده.کوئری sql با اکسس مگه فرق میکنه؟

farshadvl
شنبه 27 آبان 1391, 16:34 عصر
نظری ایده ای جوابی کسی نبود؟

mhq1368
شنبه 27 آبان 1391, 16:41 عصر
پر کردنشو مشکلی ندارم الان که میخواهم دیتاست رو سیو کنم خطا میده.کوئری sql با اکسس مگه فرق میکنه؟

نه دوست عزیز هیچ فرقی نداره دوتاش یکیه

ولی چه خطایی میگیره از
da.fill(ds,"نام جدول")
خطا میگره?

ma.rad
شنبه 27 آبان 1391, 17:25 عصر
متن خطا روبزارید تا کمک تون کنیم.

farshadvl
شنبه 27 آبان 1391, 19:07 عصر
این هم تصویر خطا
http://www.up.vbiran.ir/images/eqgr56ij4h69jiarlrpq.jpg

farshadvl
یک شنبه 28 آبان 1391, 16:39 عصر
کسی نیست جواب بده/ فکر نکنم اینقدرها هم مشکل باشه که جوابی نیست