جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
با سلام
من واسه جستجو در دیتابیس از کد پایین استفاده میکنم و مشکلی ندارم ولی خواسته ام اینه که رویه دو یا سه تا فیلد جستجو رو انجام بدم .
fildname1 و fildname2 و fildname3
private void button3_Click(object sender, EventArgs e) {
string[] a = textBox1.Text.Split('+',' ');
string b = "select * from table where fildname like '%";
for (int i = 0; i < a.Length; i++)
{
if (i < a.Length - 1)
b += a[i] + "%' and fildname like '%";
else
b += a[i] + "%'";
}
MessageBox.Show(b);
}
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
چرا از in استفاده نمیکنید؟
select * from table where fildname in(items)
که میتونید items رو مثلا انجوری بدین (N'علی'،N'حسن'،N'حسین')
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
رامین مرادی
چرا از in استفاده نمیکنید؟
select * from table where fildname in(items)
که میتونید items رو مثلا انجوری بدین (N'علی'،N'حسن'،N'حسین')
این که شما فرمودید هم یک فیلد رو جستجو میکنه .من میخوام رویه چند تا فیلد جستجو انجام بشه .
مثلا طرف یکم از کد کالا رو بزنه بعد "+" یکم از نام کالا "+" یکم هم از مشخصه فنی تا بتونه کالا رو جستجو کنه.
کد بالایه من رویه یک فیلد کاملا جواب میده .ولی من به فیلدهای بیشتری واسه جستجو نیاز دارم .
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
خب از orیا and برحسب نیازتون هم باید استفاده کنید و فیلدهای بیشتری رو معرفی کنید
select A,B from tblTest
where A in (12,17) or B in (12,17)
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
آخه من کاراکتر به کاراکتر جست و جو میکنم .مورد شما جواب کار من رو نمیده
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
با سلام
شما در نوشتن کوئری مشکل دارید لطفاً در بخش مناسب مطرح کنید
باید از OR استفاده کنید
SELECT
ID,
FirstName,
LastName,
[Address]
FROM
dbo.TestTable
WHERE FirstName = '' OR LastName = 'afshari' OR [Address] = ''
میتونید بجای = از LIKE هم استفاده کنید
همه رو برابر یک TextBox قرار بدید تا با همون یک Text توی همه ی فیلدهای رشته ای جستجو انجام بشه
موفق باشید
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
jafarpalideh
آخه من کاراکتر به کاراکتر جست و جو میکنم .مورد شما جواب کار من رو نمیده
ما کلا داریم از روی علم غیب بهتون یاد میدیم. شما جدولتون رو بزارید یه خروجی مد نظر رو هم بزارید بعد برنامتون رو هم بزارید بدونیم چیکار میخواید بکنید.
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
danialafshari
با سلام
شما در نوشتن کوئری مشکل دارید لطفاً در بخش مناسب مطرح کنید
باید از OR استفاده کنید
SELECT
ID,
FirstName,
LastName,
[Address]
FROM
dbo.TestTable
WHERE FirstName = '' OR LastName = 'afshari' OR [Address] = ''
میتونید بجای = از LIKE هم استفاده کنید
همه رو برابر یک TextBox قرار بدید تا با همون یک Text توی همه ی فیلدهای رشته ای جستجو انجام بشه
موفق باشید
ممنون بابت پاسختون . شما یه زحمت بکشید و به بنده بگید که کد پست اول رو چطور تغییر بدم که کاراکتر به کاراکتر تویه دو تا فیلد بگرده و نتیجه رو به من نشون بده .
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
رامین مرادی
ما کلا داریم از روی علم غیب بهتون یاد میدیم. شما جدولتون رو بزارید یه خروجی مد نظر رو هم بزارید بعد برنامتون رو هم بزارید بدونیم چیکار میخواید بکنید.
دوست خوبم بنده کد رو گذاشتم . و گفتم که رویه یک فیلد کامل جستجو رو انجام میده
یعنی من مینویسم دس + کا + 22 واسم دستمال کاغذی 220 برگ رو میاره و هر موردی که مشابه باشه .(جستجو بر اساس نام کالا)
ولی من میخوام تویه دوتا فیلد جدول جست و جو انجام بشه : هم کد کالا و هم نام کالا
1 ضمیمه
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
jafarpalideh
دوست خوبم بنده کد رو گذاشتم . و گفتم که رویه یک فیلد کامل جستجو رو انجام میده
یعنی من مینویسم دس + کا + 22 واسم دستمال کاغذی 220 برگ رو میاره و هر موردی که مشابه باشه .(جستجو بر اساس نام کالا)
ولی من میخوام تویه دوتا فیلد جدول جست و جو انجام بشه : هم کد کالا و هم نام کالا
با توضیح من مشکلتون حل نشد؟
ضمیمه 147790
شما هر چی توی اون جستجو بنویسید درون همه فیلد ها جستجوش میکنه
چه نام چه نام خانوادگی چه شماره همراه و...
توی پست قبل توضیح داده شد
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
danialafshari
با توضیح من مشکلتون حل نشد؟
ضمیمه 147790
شما هر چی توی اون جستجو بنویسید درون همه فیلد ها جستجوش میکنه
چه نام چه نام خانوادگی چه شماره همراه و...
توی پست قبل توضیح داده شد
من میخوام با هر بار زدن اسپیس یا کاراکتر بعلاوه یه قسمت جدید رو سرچ کنم .
اونی که شما فرمودید مشکل بنده رو حل نمیکنه متاسفانه
1 ضمیمه
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
دقیقا مثل این برنامه میخوام
ضمیمه 147791
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
هر چند تا فیلد را با or اضافه کنید
string[] a = textBox1.Text.Split('+', ' ');
string b = "select * from table where ";
for (int i = 0; i < a.Length; i++)
{
b += " (field1 like '%" + a[i] + "%' OR field2 like '%" + a[i] + "%')";
b += " AND ";
}
b += " true ;";
MessageBox.Show(b);
بهتره از پارامترها استفاده کنید.
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
هر چند تا فیلد را با or اضافه کنید
string[] a = textBox1.Text.Split('+', ' ');
string b = "select * from table where ";
for (int i = 0; i < a.Length; i++)
{
b += " (field1 like '%" + a[i] + "%' OR field2 like '%" + a[i] + "%')";
b += " AND ";
}
b += " true ;";
MessageBox.Show(b);
بهتره از پارامترها استفاده کنید.
آقای Afrad عزیز متاسفانه کد کار نمیکنه . شما خودتون تست کردید کد رو ؟
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
هر چند تا فیلد را با or اضافه کنید
string[] a = textBox1.Text.Split('+', ' ');
string b = "select * from table where ";
for (int i = 0; i < a.Length; i++)
{
b += " (field1 like '%" + a[i] + "%' OR field2 like '%" + a[i] + "%')";
b += " AND ";
}
b += " true ;";
MessageBox.Show(b);
بهتره از پارامترها استفاده کنید.
من همه جوره کدهارو جابه جا کردم ولی جواب نگرفتم.
یکبار به AND گیر میده . یکبار به TRUE گیر میده و یکبار به ";" گیر میده.
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
به جای true یک عبارت مثل 1=1 قرار بدید.
نقل قول: جستجوی پیشرفته بدون در نظر گرفتن کاراکتر '+' و ' '
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
هر چند تا فیلد را با or اضافه کنید
string[] a = textBox1.Text.Split('+', ' ');
string b = "select * from table where ";
for (int i = 0; i < a.Length; i++)
{
b += " (field1 like '%" + a[i] + "%' OR field2 like '%" + a[i] + "%')";
b += " AND ";
}
b += " true ;";
MessageBox.Show(b);
بهتره از پارامترها استفاده کنید.
با سلام
من این مدل کدی نویسی را تجربه نکرده ام. آیا کد بالا را باید سمت اس کیو ال نوشت و یا سمت برنامه ؟ اگر در برنامه نوشته شود فرضا برای دلفی به چه صورت باید نوشته شود؟ متشکرم