PDA

View Full Version : سوال: جست و جوی کلمه از vb.net در sql



mohammad1314
جمعه 03 آذر 1391, 18:39 عصر
سلام خدمت دوستان . من یک سوال دارم که این سوال رو چند وقت پیش مطرح کردم که فقط در خود vb.net استفاده میشد اما این سوالم کمی فرق داره چون باید با توجه به sql حل شه.

من در sql server 2008 یک جدول به نام Tbl_Words دارم که سه ستون داره . یه ستون به نام word هست که شامل لغات انگلیسی هست . یه ستون به نام persian هست که شامل معانی فارسی لغات هست ویک ستون به نام english که شامل لغات معانی انگلیسی لغات (ستون اول) هست.
حالا من در vb.net یک کمبو باکس دارم یک لیست باکس و دو تا label .
میخوام از کمبو باکس برای جست و جو واز لیست باکس برای لغات شبیه به هم و از تکست باکس ها برای معانی فارسی و انگلیسی استفاده کنم .
میخوام زمانی که در کمبو باکس شروع به تایپ کردن کردم با توجه به ستون word در sql لغاتی رو که حرف اولشون شبیه به هم هست و بعد حروف دوم وتا آخر ، اون هایی که مثل هم هست رو در لیست باکس نمایش بده ، دقیقا مانند نرم افزار های دیکشنری یا جست و جوی گوگل . زمانی که بر روی لغت در لیست باکس کلیک کردم ، معنی فارسیش در یک لیبل و معنی انگلیسیش در یک لیبل نمایش بده .
من یک برنامه گذاشتم تا میخوام توضیحاتی رو که دادم شبیه به این فرم باشه . ببخشید که زیادی توضیح دادم.

123s0ran
جمعه 03 آذر 1391, 18:45 عصر
سلام دوست عزیز من خودم از این کد استفاده میکنم امیدوارم به درد شما هم بخوره....


Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
Try
If txtSearch.Text = String.Empty Then ReloadRecord() : Exit Sub
Dim sqlcmd As String = ""
Select Case ComboBox1.SelectedIndex
Case Is = 0 ' جستجو بر اساس کد
sqlcmd = "Select * from table1 where id =" & txtSearch.Text
Case Is = 1 ' جستجو بر اساس نام
sqlcmd = "Select * from table1 where fname like N'%" & txtSearch.Text & "%'"
Case Is = 2 ' جستجو بر اساس نام خانوادگی
sqlcmd = "Select * from table1 where lname like N'%" & txtSearch.Text & "%'"
Case Is = 3 'جستجو بر اساس ساعت
sqlcmd = "Select * from table1 where sat like N'%" & txtSearch.Text & "%'"
End Select
ad = New SqlDataAdapter(sqlcmd, cnnString)
dt = New DataTable
ad.Fill(dt)
dgv.DataSource = dt
Catch ex As Exception
MsgBox(Err.Description _
, MsgBoxStyle.Critical, "خطا هنگام جستجو")
End Try
End Sub

mohammad1314
جمعه 03 آذر 1391, 19:01 عصر
دوست من ، بنده یک کاربر تازه کار با sql هستم وممنون میشم که کامل تر توضیح بدین . در ضمن با توجه به توضیحاتی که دادم ، فکر میکنم کد شما ارتباطی به برنامه من نداره . مثلا من در جدولم ستونی به نام اسم یا کد یا چیزایی که شما ذکر کردین رو ندارم وهمون طور که گفتم سه ستون به نام word, persian,english دارم . اگه میشه کامل تر توضیح بدین.
همان طور که گفتم کارم رو تازه با sql شرو ع کردم و اطلاعات چندانی ندارم .

123s0ran
جمعه 03 آذر 1391, 19:12 عصر
ببینید دوست عزیز از توضیحی که دادید برداشت من این بودش شما میخواید جستجوی داشته باشید که بر اساس کلمه باشه؟ خوب در قطعیه کدی که من گذاشتم جستجو بر اساس نام یا نام خانوادگی و غیره هستش اما واسه کلمه هم جواب میده مثلا از داخل کمبوباکس جستجورو برابر (جستجو بر اساس اسم قرار بدید) بعد با نوشتن یک کلمه هم اون فیلد های که در اون کلمه وجود داشته باشه پیدا میکنه در ضمن من هم چندان وارد نیستم چون با هزار بدبختی این کد هارو از اینجا انجا پیدا کردم اگه می خواهید کامل تر در مورد کد ها اطلاعات کسب کنی باید از اساتید محترم بخواید . با سپاس:لبخندساده: