PDA

View Full Version : سوال: خطا در جستجوی دو مقدار



aminaltavista
یک شنبه 19 شهریور 1391, 18:08 عصر
سلام

این دستور جستجوی من است که اگه کاربر موبایل وارد کرد بر اساس اون و اگه تلفن ثابت وارد کرد بر اساس اون سرچ کنه؟ مشکل از خط یکی مانده به آخر و بایند کردنه ! چه مقدار صحیحی باید جاش قرار بدم؟
SqlDataAdapter DA = new SqlDataAdapter("Select cu_Mobile , cu_Phone From t_customer "+
"Where cu_Mobile ='" + txtMobile.Text + "' or cu_Phone ='" + txtMobile.Text + "'", Conn);
DataSet DS = new DataSet();
DA.Fill(DS, "t_customer");
dataGridView1.DataBindings.Add("datasource", DS, "cu_Mobile or cu_Phone");
LoadData();

aminaltavista
چهارشنبه 22 شهریور 1391, 09:01 صبح
مثل این که دوستان در جواب این سوال ناتوان بودند! عیبی نداره خیلی وقتا یه چیزهایی رو که بلدیم هنگ میکنیم و انگار یادمون رفته.

من خودم دست به کار شدم و تو سایت code project داخل پستاش سرچ کردم و به نتیجه ملموسی رسیدم. البته که روش بالا برای دیتابیس اکسس بسیار مناسبه چون همین کد در اصل برا اون بهینه شده و درست کار میکنه . کد زیر برای کار با دیتابیس sql هست:

DT.Clear();
using (SqlDataAdapter DA = new SqlDataAdapter("Select cu_Name,cu_BirthDay,cu_Mobile,cu_Phone,cu_Address from t_Customer" +
" where cu_Mobile='" + txtSearchMobile.Text + "' or cu_Phone='" + txtSearchMobile.Text + "'", Conn))
{
Conn.Open();
DA.Fill(DT);
Conn.Close();
}
dataGridView1.DataSource = DT;

DT یک شی از جنس کلاس datatable است و Conn نیزشیی از کلاس sqlConnection . به این علت اول خط بستمش که پس از هر بار زدن دکمه سرچ حافظه داخلش خالی یا بسته بشه و برا بعد آماده چرا که اگه این کارو نکنید با خطامواجه میشید. بقیه هم واضح است.

موفق باشید

roolinjax
چهارشنبه 22 شهریور 1391, 10:08 صبح
سلام
خیلی جالبه
سوال شما هیچ ربطی به جواب شما نداره.
لطفا اگر راه حل می خواید بگید که می خواید چه عملی انجام بدین تا راهکار بهتون گفته بشه.
جالب اینجاست که شما می گین راه رفع ارور پیش اومده چیه ؟
در هر صورت خوب که مشکلتون حل شد ، گرچه با توجه به اون چیزی که من از موضوع پست اول فهمیدم حس می کنم دستور select خروجی مطلوب و مورد نظر رو نمیده

aminaltavista
چهارشنبه 22 شهریور 1391, 11:38 صبح
سلام
خیلی جالبه
سوال شما هیچ ربطی به جواب شما نداره.
لطفا اگر راه حل می خواید بگید که می خواید چه عملی انجام بدین تا راهکار بهتون گفته بشه.
جالب اینجاست که شما می گین راه رفع ارور پیش اومده چیه ؟
در هر صورت خوب که مشکلتون حل شد ، گرچه با توجه به اون چیزی که من از موضوع پست اول فهمیدم حس می کنم دستور select خروجی مطلوب و مورد نظر رو نمیده

اگه جسارتی بهتون شده من عذر میخوام.

ببینید در اصل علت ایجاد پست این بود که راهی برای استخراج دو فیلد که مقدار وارد شده برابر با اون باشه ارائه بشه به عبارتی اگه کاربر شماره موبایل وارد کرد بر اساس اون و اگه تلفن وارد کرد بر اساس اون سرچ بشه و اینکه هر دوی این موارد باید تو یه تکست وارد بشه . مشکل من هم در اول کار ظاهرا همین بایند کردن بود که بعد از تحقیق متوجه شدم که روش درستی نیست و شما به عنوان یک استاد باید از به کار بردن این روش به من تذکر میدادید و راه حل درست رو به من میدادید
من با روش اول به نتیجه ای نرسیدم اما روش دوم جواب کارم رو داد . بگذریم از یه فیلدهای اضافی که داخلش ذکر شده مثل cu_BirthDay چون از اشتیاق یادم رفت برشون دارم .

ما کتک خورده شما هم هستیم و هیچ وقت برای کسی ادعا نمیکنیم . مقدار select هم همون طور که میدونید این طور به کار بردم چون نمیخوام همه فیلدام رو نشون بده.
داش مجید بابا من سیگارتم (اخراجی ها- امیر کپک)

موفق باشید

roolinjax
چهارشنبه 22 شهریور 1391, 12:22 عصر
من هم ادعایی ندارم و جسارتی هم ندیدم
اما حرفم اینه که توی این یک مورد شما به جواب سوالتون رسیدید.
اگر موردی پیش بیاد که روزها به جواب نرسید ، با این روش تاپیک زدن ممکنه دیگران رو گمراه کنید تا کسی نتونه بهتون کمک کنه.
در هر صورت نظر من استفاده از and به جای or و استفاده like و % به جای = هستش که خروجی درست تری رو با توجه به چیزی که شما گفتین بر می گردونه ( البته ممکنه بازم من بد متوجه شده باشم حرف شما رو !!!)