PDA

View Full Version : کمک برای رفع مشکل کد جستجو



RHA_65
سه شنبه 24 شهریور 1388, 13:13 عصر
سلام دوستان
این کد رو برای جستجو نوشتم اگه میشه برام اصلاحش کنید (عکس فرم رو هم پایین گذاشتم )
ممنون از همه کسانی که نظر میدن ... پیروز و پاینده باشید


Dim strSql As String
Dim strCon As String = "Data Source=HOME-BF1D8CE774\SQLEXPRESS;Initial Catalog=Amlak;Integrated Security=True"
Dim ds As New DataSet()
Dim da As SqlDataAdapter
Dim con As SqlConnection
Dim cmd As New SqlCommand()
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim x, y As Integer
con = New SqlConnection(strCon)
con.Open()
strSql = "select * From TbForosh Where"
If (chk1.Checked) Then strSql= strSql + "NoeMelk=" + ""& ComboBox1.Text &"" And
If (chk2.Checked) then strSql=strSql + " NameMantaghe=" + ""& ComboBox2.Text &"" And
If(chk3.Checked) then strSql=strSql+ "NoeSanad=" + ""&ComboBox3.Text &"" And
If (chk4.Checked) Then strSql = strSql + "Ghymat between" + x And y
da = New SqlDataAdapter(strSql, con)
cmd.CommandText = strSql
cmd.Connection = con
cmd.ExecuteNonQuery()
da.Fill(ds, "TbForosh")
con.Close()
End Sub

k_m
چهارشنبه 25 شهریور 1388, 01:00 صبح
با سلام
خوب کاش مشکلت رو هم نوشته بودی.
یک مورد رو هم چک کن. قبل از این خط
cmd.CommandText = strSql
چک کن ببین مقدار متغیر strsql چیه. اونو توی sqlserver اجرا کن اول ببین خطا داره یا نه.
اگه اونجا بهت جواب داد متن خطا رو بنویس تا راهنماییت کنیم.

mn_zandy63
چهارشنبه 25 شهریور 1388, 09:21 صبح
همونطور که دوستمون گفتند خطای کدتون مشخص نیست.
اما یه تعدادی خطاهای بارز وجود داره توی کدتون
به این شکل کدتون رو اصلاح کنید و بعد خطاهای موجود رو بنویسید اینجا، تا نحوه رفعشون رو بهتون بگیم.
Dim strSql As String
Dim strCon As String = "Data Source=HOME-BF1D8CE774\SQLEXPRESS;Initial Catalog=Amlak;Integrated Security=True"
Dim ds As New DataSet()
Dim da As SqlDataAdapter
Dim con As SqlConnection
Dim cmd As New SqlCommand()
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim x, y As Integer
con = New SqlConnection(strCon)
con.Open()
strSql = "SELECT * FROM TbForosh"
Dim whereClause As String = ""
If (chk1.Checked) Then whereClause += String.Format("NoeMelk= '{0}'", ComboBox1.Text)
If (chk2.Checked) Then whereClause += String.Format("{0} NameMantaghe='{1}'", IIf(whereClause = "", "", " AND "), ComboBox2.Text)
If (chk3.Checked) Then whereClause += String.Format("{0} NoeSanad='{1}'", IIf(whereClause = "", "", " AND "), ComboBox3.Text)
If (chk4.Checked) Then whereClause += String.Format("{0} Ghymat BETWEEN {1} AND {2}", IIf(whereClause = "", "", " AND "), x.ToString, y.ToString)
If whereClause <> "" Then strSql += String.Format(" WHERE {0}", whereClause)
da = New SqlDataAdapter(strSql, con)
cmd.CommandText = strSql
cmd.Connection = con
cmd.ExecuteNonQuery()
da.Fill(ds, "TbForosh")
con.Close()
End Sub

یک نکته متغیر های x و y رو هیچ جای کدتون مقدار دهی نکردید.
موفق باشید

RHA_65
چهارشنبه 25 شهریور 1388, 16:26 عصر
سلام از این که وقت گذاشتی خیلی ممنون
کدی که بالا برام گذاشتی Debug کردم...همه مقادیری که تو ComboBox هستش رو به عنوان ستون میشناسه ....مثلا یکی از Error ها اینه
'خ بهشتي "Invalid column name


راستی کدایی رو که بالا نوشتی (Format,....) یه مقدار توضیح بده ...
بازم ممنون که وقت میذاری

mn_zandy63
چهارشنبه 25 شهریور 1388, 20:48 عصر
بله حق با شماست، همون پست رو ویرایش کردم، بازم تست کنید.

String.Format رو اگه جستجو کنید، فکر میکنم کامل تر از توضیحات من پیدا میکنید. :چشمک:
توی MSDN هم توضیحات کاملی میتونید پیدا کنید.
اون {0} و {1} و ... پارامتره، متغیر هایی که بعد از اون با کاما از هم جدا شده اند به ترتیب جایگزین {0} و {1} و ... میشن.
یکی از بزرگترین نکات مثبت استفاده از این تابع، خواناتر شدن کدت هست، به جای اینکه تیکه تیکه با + و & یک String رو بسازی.

موفق باشید

RHA_65
پنج شنبه 26 شهریور 1388, 12:37 عصر
بله حق با شماست، همون پست رو ویرایش کردم، بازم تست کنید.

String.Format رو اگه جستجو کنید، فکر میکنم کامل تر از توضیحات من پیدا میکنید. :چشمک:
توی MSDN هم توضیحات کاملی میتونید پیدا کنید.
اون {0} و {1} و ... پارامتره، متغیر هایی که بعد از اون با کاما از هم جدا شده اند به ترتیب جایگزین {0} و {1} و ... میشن.
یکی از بزرگترین نکات مثبت استفاده از این تابع، خواناتر شدن کدت هست، به جای اینکه تیکه تیکه با + و & یک String رو بسازی.

موفق باشید

سلام دوست عزیز
ممنونم...مقادیری که میگیره کاملا درست هستش .اما حالا چطور نتیجه رو تو یه فرم دیگه نشون بدم.
پاینده باشی.

mn_zandy63
پنج شنبه 26 شهریور 1388, 19:34 عصر
بستگی داره بخوای چیکار کنی تو فرمت، راه های متفاوتی هم هست.
مثلا میتونی همین da رو که پر کردی، بفرستی برای اون فرمت و توی یک دیتاگرید نشونشون بدی.
موفق باشی