PDA

View Full Version : سوال در مورد جستجو با کد SQL



alizanganeh
شنبه 14 بهمن 1391, 23:37 عصر
سلام

با کد SQL زیر میشه از توی بانک هر رکوردی که فیلد مثلا bedehi با txtsearch یکسان بود رو به datagrid ارسال کنه

rs1.Close
rs1.Open "Select * From barg1 Where bedehi Like '%" & txtSearch & "%'", db1
Set datagrid1.DataSource = rs1

حالا میخوام بدونم آیا میشه این کد رو طوری تغییر داد که اگر با محتوی txtsearch یکسان نبود ، رکورد رو به datagrid ارسال کنه ؟

ممنون:قلب:

Hashemvp
یک شنبه 15 بهمن 1391, 05:56 صبح
سلام

با کد SQL زیر میشه از توی بانک هر رکوردی که فیلد مثلا bedehi با txtsearch یکسان بود رو به datagrid ارسال کنه

rs1.Close
rs1.Open "Select * From barg1 Where bedehi Like '%" & txtSearch & "%'", db1
Set datagrid1.DataSource = rs1

حالا میخوام بدونم آیا میشه این کد رو طوری تغییر داد که اگر با محتوی txtsearch یکسان نبود ، رکورد رو به datagrid ارسال کنه ؟

ممنون:قلب:
سلام دوست عزیز وقتی رکوردی نیست چی رو نشون بده!!!!!!!!!!!!

اگه منظورت اینکه فیلتر گذاری در صورتی ک هیچ رکوردی وجود نداشت اعمال نشه
میتونی از این روش استفاده کنی

rs1.Close
rs1.Open "Select * From barg1 Where bedehi Like '%" & txtSearch & "%'", db1
' مطمئن نیستم ک خصوصیت رو درست نوشتم یا نه ولی میتونی تعداد رکورد های فیلتر شده رو چک کنی اگر 0 بود ک میای کل جدول رو انتخاب میکنی برای نمایش
if rs1.recordcount =0 then
rs1.Open "Select * From barg1", db1
Set datagrid1.DataSource = rs1
end if

موفق باشی

alizanganeh
یک شنبه 15 بهمن 1391, 08:17 صبح
نه عزیز
منظورم اینه که مثلا اگر مقدار txtsearch برابر با "علی" هستش ، تموم رکورد هایی که مقدار فیلد bedehi غیر از علی هست نمایش بده
فکر کنم واضح بود :قلب:

alizanganeh
یک شنبه 15 بهمن 1391, 21:00 عصر
کسی نمیتونه کمک کنه ؟

amin32
یک شنبه 15 بهمن 1391, 22:15 عصر
اگر منظورتون رو درست متوجه شده باشم باید کد sql رو به این شکل بنویسید:


"Select * From barg1 Where not (bedehi Like '%" & txtSearch & "%')"

میلاد علوی
یک شنبه 15 بهمن 1391, 22:53 عصر
کاری داره که عزیزم

rs1.Close
rs1.Open "Select * From barg1 Where bedehi notLike '%" & txtSearch & "%'", db1
Set datagrid1.DataSource = rs1

alizanganeh
یک شنبه 15 بهمن 1391, 23:55 عصر
کاری داره که عزیزم

rs1.Close
rs1.Open "Select * From barg1 Where bedehi notLike '%" & txtSearch & "%'", db1
Set datagrid1.DataSource = rs1


عزیز اینکه کلا مشکل داره که
میگه notLike اشتباهه !!!

alizanganeh
یک شنبه 15 بهمن 1391, 23:58 عصر
اگر منظورتون رو درست متوجه شده باشم باید کد sql رو به این شکل بنویسید:


"Select * From barg1 Where not (bedehi Like '%" & txtSearch & "%')"



نمیشه
دیتا گرید رو خالی میکنه !!!
ینی هیچی پیدا نمیکنه !!!

محسن واژدی
دوشنبه 16 بهمن 1391, 08:08 صبح
سلام علیکم
بصورت زیر چطور:
SELECT * FROM barg1 WHERE bedehi NOT LIKE '%" & txtSearch & "%'

موفق باشید

alizanganeh
دوشنبه 16 بهمن 1391, 08:50 صبح
دوستانمن فکر کنم کدهایی که دادن هم محسن جان و هم اون دوستمون درست باشن . ولی جستجوی من با دستور like نمیشه
باید دقیقا جستجو بشه
چون با دستور like اگر ما مثلا "ج" رو جستجو کنیم و هر رکوردی که توی اون فیلدش "ج" داشته باشه میاره
ولی من میخوام اگر فقط "ج" بود نشون بده

اینطوری فک کنم درست بشه :قلب:

vbhamed
دوشنبه 16 بهمن 1391, 10:18 صبح
سلام

SELECT * FROM barg1 WHERE bedehi LIKE '" & txtSearch & "'"
اين براي اينكه فقط خود عبارت وارد شده جستجو بشه و موارد شامل عبارت نيان


SELECT * FROM barg1 WHERE bedehi = '" & txtSearch & "'"
اين هم براي اينكه فقط خود عبارت وارد شده جستجو بشه به روشي ديگه


SELECT * FROM barg1 WHERE bedehi <> '" & txtSearch & "'"
اين هم براي اينكه خود عبارت وارد شده جستجو نشه و ساير موارد بيان

alizanganeh
دوشنبه 16 بهمن 1391, 10:37 صبح
داداش حامد به شدت دمت گرم
تموم کدهایی که دادی درست بودن
از بقیه هم ممنون

موفق باشید :قلب: