ايران ويج

نسخه‌ی کامل: سوال درباره چگونگي سرچ كردن در ديتابيس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
کسی میدونه چطوری میشه تو ویژوال بیسیک 6 ، در database هایی که ساخته ایم بر اساس یک field اطلاعات را جستجو کنیم ؟(من از شيء Adodc استفاده مي‌كنم.)
البته من مي‌خوام كه نيازي نباشه كه عبارت موجود در آن ستون را دقيقا" مثل خود عبارت تايپ كنيم.بلكه اگر مثلا" در آن فيلد براي يك ركورد نوشته باشد "كارشناسي ارشد" و ما عبارت "كارشناسي" را جستجو كنيم هم آن ركورد را پيدا كند و نشان دهد.
در ضمن مي‌خواستم بدونم اگر بخوام يك عبارت را در كل ديتابيس جستجو كرد بايد از چه كدي استفاده كنيم؟؟؟
ممنونم.
سلام.
دستور Sql به این صورت هست:

کد:
select * from table
where feild1 like '%کارشناسی%'

برای کل دیتابیس هم میتونی همین کارو برای تک تک تیبل ها انجام بدی.
اما راه حرفه ای ترش استفاده از دستور cursor هست که خودش تیبلات رو پیدا میکنه.
حتی میتونه سرچ رو رو تک تک فیلدهای هر تیبل انجام بده.
ممنون ولي ... Laugh
ببخشيد ديتابيس من يه تيبل بيشتر نداره.در ضمن اين دستورات رو بايد تو ويژوال بنويسم يا جاي ديگه؟
من يه Combo تو برنامم گذاشتم كه اسم همه‌ي فيلد ها توش هست. ابتدا كاربر بايد از بين نوشته هاي درون Combo يكي از فيلد ها را انتخاب كند .و در پايين يه Textbox گذاشتم كه كاربر توي اون بتونه عبارتي را كه مي‌خواد جستجو بشه -و پرونده اي كه در آن فيلد ، حاوي آن عبارت است را نشان دهد - را وارد كند .هدف من از درخواست اين برنامه اينه كه نيازي نباشه كاربر حتما" عبارت مورد جستجو را دقيقا" وارد كند چون در آن صورت كار با برنامه سخت مي‌شه و كاربر مجبوره دقيقا" فاصله ها و اينا رو رعايت كنه. كدي كه قبلا" تو برنامه نوشتم اينه: حالا مي‌خوام يه طوري اصلاحش كنين كه نياز نباشه عبارت دقيقا" تايپ بشه.(البته اوني كه عبارت ها ي شبيه به هم رو دقيقا" تشخيص بده ديگه كار هوش مصنوعي و گوگل و ياهو و ايناست.من ميخوام اگر مثلا" عبارت "كارشناسي" رو جستجو كرديم "كارشناسي ارشد" را هم پيدا كند.)
کد php:
Private Sub Command9_Click()
On Error GoTo 11

Adodc3
.RecordSource " SELECT files.* From Files WHERE ([" Combo6.Text "])='" Text20.Text "'"
Adodc3.Refresh

Exit Sub
l1
:
Adodc3.RecordSource " SELECT files.* From Files WHERE ([" Combo6.Text "])=" Text20.Text ""
Adodc3.Refresh
End Sub 
='ali' adodc1.recordset.serch="fildname
(۲۵-مرداد-۱۳۹۱, ۱۸:۲۱:۰۱)parham2010 نوشته است: [ -> ]='ali' adodc1.recordset.serch="fildname
Angry Angry Angry
حالت خوبه؟
اين ديگه چيه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ببخشــــــــــــــــــيــــــــــــــــــــــــــد.اگر زودتر جواب بديد.ممنون مي‌شم.مي‌دونم سرتون شلوغه.ولي لطفا" زودتر.اين پروژه داره ديوونم مي‌كنه.
دوست عزیز

آقا پیمان جواب شما رو کامل و واضح دادند چرا از اون استفاده نکردید؟

نکته اش اینه که باید قبل و بعد از عبارت از علامت % استفاده کنید
دي ديِ عزيز.هر طور كه كد اين دوست عزيز را امتحان كردم كار نكرد .شما كدي كه تو پست قبلي گذاشتم ببين بگو چطور مي‌تونم .درستش كنم؟ ممنون
کد:
Private Sub Command9_Click()
On Error GoTo 11

Adodc3.RecordSource = " SELECT * From Files WHERE " + Combo6.Text + "='" & Text20 & "%'"
Adodc3.Refresh

Exit Sub
l1:
Adodc3.RecordSource = " SELECT * From Files WHERE " + Combo6.Text + "=" & Text20 & ""
Adodc3.Refresh
End Sub
شما حتما تو ويندوز جستجو كرديد ديگه؟ مثلا اگر دنبال فايلي با نام :كارشناسي ارشد باشيد تو قسمت جستجو

مي نويسيد كارشناسي* اون ستاره آخر يعني هرچيزي مي تونه بعد از كارشناسي بياد

حالا تو SQL به جاي * از % استفاده مي كنيم.
به پير به پيغمبر امتحان كردم جواب نداد.اصلا" من از ديتابيس ACCESS استفاده مي‌كنم و ديتابيسم SQL نيست.اشكال از اينه؟؟؟ اين كدي كه شما گذاشتي اصلا" كار نمي‌كنه.مطمئنم كه اشكال از برنامه من نيست چون نام فيلدي - كه توي كامبو است- را دقيقا" شبيه نام COLUMN تو اكسس نوشتم و اشكال از اين كده.در ضمن من از ويژوال بيسيك 6 استفاده مي‌كنم.لطفا جوابم را بديد.
نقل قول: به پير به پيغمبر امتحان كردم جواب نداد.اصلا" من از ديتابيس ACCESS استفاده مي‌كنم و ديتابيسم SQL نيست.اشكال از اينه؟؟؟
نه دوست خوبم اشكال از ماست كه از اول نپرسيديم ديتابيست چيه!!
کد:
" SELECT * From Files WHERE " + Combo6.Text + " like " & Text20 & "*"

بهتره از دستور Like استفاده كني. براي فيلدهاي متني هم فكر مي كنم بايد از ' استفاده كني و اينكه به جاي %‌ بايد

بنويسي * . همچنين ممكنه دستور Like به تنهايي كفايت كنه.

اگر باز هم مشكلت حل نشد پرژه ات رو بزار اينجا تا بررسيش كنيم.
صفحه‌ها: 1 2