PDA

View Full Version : مشکل با دستور IN مربوط به Sql Server در vb.net



swallow.pa
دوشنبه 18 اردیبهشت 1391, 21:27 عصر
سلام به همه
من توی محیط وی بی باید یکجا از دستور SELECT * FROM Person WHERE State IN('Na',Da)
استفاده کنم حالا شاید املای بالا اشتباه باشه اما مشکل من اینه که می خوام کاربر شاید 2 پارامتر بخواد و شاید 5 پارامتر که In داشته باشند حالا این پارامترها یا عددی هستند یا رشته می خوام بدونم دوستان چطوری عمل می کنند
ممنون

فرید نجفلو
دوشنبه 18 اردیبهشت 1391, 22:02 عصر
سلام فکر کنم شما منظورتون این باشه که حین اجرا بتونید پارامتر ها رو تعیین کنید
چون من نمی دونم شما پارامتر ها رو چطوری از کاربر می گیرد من با یک چک لیست مثال می زنم:
If Me.CheckedListBox1.CheckedItems.Count = 0 Then Exit Sub 'موردی انتخاب نشده
Dim ParamList As String = ""
For Each aItem In Me.CheckedListBox1.CheckedItems
ParamList &= "'" & aItem.ToString & "',"
Next
ParamList = Strings.Left(ParamList, ParamList.Length - 1)
Dim TSQL As String = "SELECT * FROM Person WHERE State IN(" & ParamList & ")"
MsgBox(TSQL)



حالا این پارامترها یا عددی هستند یا رشته می خوام بدونم دوستان چطوری عمل می کنند

اگه همه حروف هستن یا هم عدد و هم حروف نتیجه این میشه که فیلد شما یکی از انواع متنی هست پس کد بالا درسته
اگه فیلد شما عددی هست (مثل int) تو کد بالا و داخل حلقه کافیه تک نقل قول ها رو اضافه نکنید