PDA

View Full Version : سوال: خطا در خط دستوری dataadapter



h.rezaee
دوشنبه 02 مرداد 1391, 17:14 عصر
سلام بر دوستان و اساتید حرفه ای برنامه نویس. از شما دوستان خواهشی داشتم تا یه مروری بر کدهای ما بندازید ببینید ایرادش کجاست عکس رو هم زمینه میکنم.
دوستان عزیز این توضیح رو هم بدم تا زمانی که دستورات خط objdataadapter به صورت
objdataadapter.SelectCommand.CommandText = "Select * from dbo.mainfrm where (name =+textBox1.Text+)";
هستش خطا نداریم ولی وقتی کد زیر قرار داده میشه اررور میده .
objdataadapter.SelectCommand.CommandText = "Select * from dbo.mainfrm where (name like '%'"+textBox1.Text+"'%')";

Arash_janusV3
دوشنبه 02 مرداد 1391, 17:33 عصر
دستور select شما اشکال دارد
قواعد like صحیح نیست

h.rezaee
دوشنبه 02 مرداد 1391, 17:55 عصر
دوست عزیز لطف میکنی قاعده درستش رو بزارید ممنون میشم

FastCode
دوشنبه 02 مرداد 1391, 18:03 عصر
سلام.
فکر میکنم
... '%'" + Text + "'%' ...
باید بشه
... '%" + Text + "%' ...
خیلی ساله از like استفاده نکردم.یاد خاطراتم افتادم.

h.rezaee
دوشنبه 02 مرداد 1391, 18:10 عصر
دوست عزیز این رو هم بگم بنده دستورات dataAdapter رو کامنت کردم یه مسیج باکس کذاشتم جواب داد، منظورم اینه که پیدا میکنه منتها در داخل dataAdapter نمیتونه بریزه


objdataadapter.SelectCommand.CommandText = "SELECT * FROM mainfrm where (name = '" + textBox1.Text + "' )";

h.rezaee
دوشنبه 02 مرداد 1391, 18:11 عصر
دوست عزیز اگه از like استفاده نکنی چه جوری این query ایجاد شده باید بدونه

h.rezaee
دوشنبه 02 مرداد 1391, 18:49 عصر
خودتون میپرسید خودتون جواب میدید.
ببخشید چی رو میپرسم چی رو جواب میدم. این جمله رو درباره دوست خوبمون fastcode دادم. بازم ممنون که باز یه سری به اینجا زدید. ممنون میشم اگه راهنمایی کنید

h.rezaee
دوشنبه 02 مرداد 1391, 19:11 عصر
سلام.
فکر میکنم
... '%'" + Text + "'%' ...
باید بشه
... '%" + Text + "%' ...
خیلی ساله از like استفاده نکردم.یاد خاطراتم افتادم.
دوست عزیز طبق فرمایشات شما انجام دادم منتها وقتی که عبارت مورد نظر تو دیتا بیس هستش رو پیدا میکنه کل رکورد های دیتا بیس رو نمایش میده!
کدی که قرار دادم این هستش.

objdataadapter.SelectCommand.CommandText = "SELECT * FROM mainfrm where (name like '%" + Text + "%')";

h.rezaee
دوشنبه 02 مرداد 1391, 19:25 عصر
اگر منظورتون همه ستونها هست ، اگر نمیخواهی همه فیلدها رو سلکت کنید به جای * نام ستون های مورد نظر رو بنویسید
نه خیردوست عزیز. همه ستونها نه همه سطر ها رو میاره . هر چیزی که توی دیتا بیس وارد شده میاره.

for (int j = 0; j <= i - 1; j++)
{
DataRow dr = das.Tables["mainfrm"].Rows[j];
listBox1.Items.Add(dr[2].ToString());
}
}
else
{
MessageBox.Show("vojod nadaraddddddddddddddddddd");
}

دوست عزیز کد رو کذاشتم . ببین وقتی که پیدا میشه تمامی رکورد ها رو در داخل dataAdapter میریزه.منظورم اینه که objdataadapter.Fill(das, "mainfrm");

veniz2008
دوشنبه 02 مرداد 1391, 19:30 عصر
سلام،دستور رو اینطور بنویسید:

SqlDataAdapter Adapter = new SqlDataAdapter("SELECT * FROM Student Where Name Like '%" + TextBox1.Text.TrimStart() + "%'", conn);

h.rezaee
دوشنبه 02 مرداد 1391, 19:37 عصر
سلام،دستور رو اینطور بنویسید:

SqlDataAdapter Adapter = new SqlDataAdapter("SELECT * FROM Student Where Name Like '%" + TextBox1.Text.TrimStart() + "%'", conn);

دوست عزیز یک دنیا ممنون. دست گلت درد نکنه . خیلی عالی بود بالاخره درست شد. فقط یک مشکل داره اونم اینه که وقتی textboxخالی هستش هر چی رکورد تو دیتا بیس هستش رو میاره!