PDA

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



kablayi
دوشنبه 23 اردیبهشت 1387, 22:29 عصر
سلام ...
میخواستم اگر امکان داشته باشه اشکال کد منو بگید ....
میخوام هر وقت که در تکست باکس یه حرف رو تایپ میکنم دیتا گررید آپدیت بشه و نسبت به اون فیلتر بشه ...
من اینجوری نوشتم ...



Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim strcon As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=BD.accdb"
Dim strsql As String = "select * from customer where name='" & TextBox1.Text & " *' "
Dim da As New OleDbDataAdapter(strsql, strcon)
Dim ds As New DataSet()
ds.Clear()
da.Fill(ds, "customer")
DGV1.DataSource = ds
DGV1.DataMember = "customer"
End Sub



ممنون... :لبخند:

Dariuosh
دوشنبه 23 اردیبهشت 1387, 23:06 عصر
اينطوري تغيرش بده


Dim strsql As String = "select * from customer where name LIKE '%" & TextBox1.Text & "%' "

kablayi
دوشنبه 23 اردیبهشت 1387, 23:21 عصر
فکر نکنم فرقی داشته باشه ولی اینو هم امتحان میکنم ... ممنون

kablayi
دوشنبه 23 اردیبهشت 1387, 23:24 عصر
مشکل حل نشد ...
نمیدونم یه پیغام شبیه این میاد و از عبارت خاصی خطا نمیگیره ...

kablayi
دوشنبه 23 اردیبهشت 1387, 23:27 عصر
وقتی که عبارت :

where name LIKE '%" & TextBox1.Text & "%' "
رو برمیدارم error نداره و به صورت کلی جواب میده ...

Dariuosh
دوشنبه 23 اردیبهشت 1387, 23:37 عصر
خوب شما اول Quaryات رو تو خوده Sql امتحان کن بعد که جواب گرفتي منتقلش کن تو برنامت

Sub Zero
سه شنبه 24 اردیبهشت 1387, 11:02 صبح
از این کدها در رویداد TextChanged استفاده کن:

Using con As New OleDb.OleDbConnection("ConnectionString")
Dim cmd As New OleDb.OleDbCommand
con.Open()
With cmd
.Connection = con
.CommandText = String.Format("select * from customer where (name Like N'%{0}%')", TextBox1.Text)
DGV1.DataSource = .ExecuteReader
DGV1.DataMember = "customer"
End With
End Using

amirzazadeh
سه شنبه 24 اردیبهشت 1387, 12:01 عصر
از این کدها در رویداد TextChanged استفاده کن:

Using con As New OleDb.OleDbConnection("ConnectionString")
Dim cmd As New OleDb.OleDbCommand
con.Open()
With cmd
.Connection = con
.CommandText = String.Format("select * from customer where (name Like N'%{0}%')", TextBox1.Text)
DGV1.DataSource = .ExecuteReader
DGV1.DataMember = "customer"
End With
End Using
دوست عزيز متد شما اين خطا رو ميده اگر ميشه راهنمايي بفرماييد.

Sub Zero
سه شنبه 24 اردیبهشت 1387, 14:21 عصر
دوست عزیز دستور CommandText رو کامل بنویسید شما که نصفه نوشتید !

.CommandText = String.Format("select * from customer where (name Like N'%{0}%')", TextBox1.Text)

kablayi
سه شنبه 24 اردیبهشت 1387, 15:16 عصر
از همه دوستان ممنونم ....
نمیدونم چی شد ولی مشکلم با دستور زیر حل شد ... !!!!!!!!!

strsql2 = "select * from customer where Name LIKE '" & textbox1.Text & "%' "
الکی Error میگرفت ...!!!!
یکی دو بار این دستور و پاک کردم و دوباره مثل اولش نوشتم ... با کمال تعجب جواب داد .... !!!! :متعجب:

kablayi
سه شنبه 24 اردیبهشت 1387, 15:18 عصر
از این کدها در رویداد TextChanged استفاده کن:

Using con As New OleDb.OleDbConnection("ConnectionString")
Dim cmd As New OleDb.OleDbCommand
con.Open()
With cmd
.Connection = con
.CommandText = String.Format("select * from customer where (name Like N'%{0}%')", TextBox1.Text)
DGV1.DataSource = .ExecuteReader
DGV1.DataMember = "customer"
End With
End Using

از همه ممنونم ولی من می خواستم از DATASET استفاده کنم تا به راحتی روی رکوردها نویگیت داشته باشم ...
که مشکلم حل شد ... ممنون...

kablayi
سه شنبه 24 اردیبهشت 1387, 15:27 عصر
دوست عزيز متد شما اين خطا رو ميده اگر ميشه راهنمايي بفرماييد.


دوست عزیز شما اطلاعات جدول kharid رو می خواید توی دیتا گرید نمایش بدید ... پس چرا دیتا ممبر رو برابر "spname" گذاشتی ؟