PDA

View Full Version : سوال: مشکل این کد چیه ؟



debugger
شنبه 26 دی 1388, 14:07 عصر
با سلام خدمت دوستان ، یکی از دوستان من یه سورسی برام آورد که با سی شارپ و دیتا بیس اکسس نوشته شده دستور insert کار می کنه ولی ویرایش و حذف کار نمی کنه

مثلا این کد های حذف هست




OleDbConnection database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
database.Open();
string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = " + textBox1.Text + "";
OleDbCommand sqlDelete = new OleDbCommand(queryDeleteString,database);
sqlDelete.ExecuteNonQuery();
database.Close();


اروری که میده اینه


Data type mismatch in criteria expression

codebazaryab هم کلید اصلی است در جدول


با تشکر

debugger
شنبه 26 دی 1388, 14:13 عصر
OleDbConnection database = newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
database.Open();
string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = " + textBox1.Text + "";
OleDbCommand sqlDelete = newOleDbCommand(queryDeleteString,database);
sqlDelete.ExecuteNonQuery();
database.Close();

hamidreza20
شنبه 26 دی 1388, 14:19 عصر
سلام دستور sql رو به شکل زیر تغییر بده:


string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = " + textBox1.Text;



التماس دعا...

saed2006
شنبه 26 دی 1388, 14:20 عصر
انواع داده یا طول اونها هم خونی نداره

debugger
شنبه 26 دی 1388, 14:28 عصر
آقای حمید رضا مشکل از کوئری نبود با کوئری شما هم ارور داد

اقای سعید

نوع codebazaryab من از نوع text هست اینو تغییر دادم به number درست شد . ولی من میخوام از نوع text باشه چی کار باید بکنم

اگر میخواهید سورس را اپلود کنم

FastCode
شنبه 26 دی 1388, 15:06 عصر
string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = N'" + textBox1.Text + "'";

Saeed.Masoumi
شنبه 26 دی 1388, 17:55 عصر
سلام دوستان عزیز hamidreza20 و FastCode لطفا به هیچ وجه از این دستورات برای کوئری استفاده نکنید:
دلیل (http://barnamenevis.org/forum/showthread.php?t=175909)
یاشار جان شما هم بهتر است برای کد ( و مخصوصا کلید اصلی) از نوع عددی استفاده کنید
اما چون گفتید این برنامه دوستتان است فکر کنم راه FastCode جواب بده.
ولی اگر برنامه و دتابیس رو آپ کنی بهتر میشه کمک کرد

debugger
شنبه 26 دی 1388, 21:17 عصر
string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = N'" + textBox1.Text + "'";

این ارور را میده


Syntax error (missing operator) in query expression 'codebazaryab = N'12''.

debugger
شنبه 26 دی 1388, 21:33 عصر
سلام دوستان عزیز hamidreza20 و FastCode لطفا به هیچ وجه از این دستورات برای کوئری استفاده نکنید:
دلیل (http://barnamenevis.org/forum/showthread.php?t=175909)
یاشار جان شما هم بهتر است برای کد ( و مخصوصا کلید اصلی) از نوع عددی استفاده کنید
اما چون گفتید این برنامه دوستتان است فکر کنم راه FastCode جواب بده.
ولی اگر برنامه و دتابیس رو آپ کنی بهتر میشه کمک کرد


http://www.persiangig.com/pages/download/?dl=http://y4shar.persiangig.com/other/Copy%20of%20Masoodi.zip

لینک سورس به همراه دیتا بیس

راستی منو ها در سورس دیده میشه ولی وقتی اجرا می کنی دیده نمیشه

اینو هم یه نگاه بنداز بهش

slashslash2009
شنبه 26 دی 1388, 21:59 عصر
حرف N رو بردار

debugger
شنبه 26 دی 1388, 22:03 عصر
حرف N رو بردار
برداشتم درست نشد

سورس را ببین

Saeed.Masoumi
شنبه 26 دی 1388, 22:42 عصر
سلام درست شد بفرمایید:


OleDbConnection database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
database.Open();
string queryDeleteString = "DELETE FROM tbbazaryab where codebazaryab = @ID";
OleDbCommand sqlDelete = new OleDbCommand(queryDeleteString, database);
sqlDelete.Parameters.AddWithValue("@ID", textBox1.Text);
sqlDelete.ExecuteNonQuery();
sqlDelete.Parameters.Clear();
database.Close();

منو هات حتی تو دیزاین مد هم مشکل داره اصلا AddItem نکردیشون
امیدوارم مشکلت حل شده باشه.