PDA

View Full Version : جست‌وجو در DataGrid



hamed-p
چهارشنبه 29 شهریور 1385, 22:24 عصر
درود

1-
یک TextBox1 داریم و یک DataGrid
می‌خواهیم هرچه در Textbox1 وارد کردیم در فیلد LastName از DataGrid جست‌وجو شود.

این جست‌وجو باید به این‌گونه باشد که اگر رشته‌ی قرار گرفته در textbox در وسط یک فیلد نیز باشد نیز نشان داده شود:

مثلاً اگر در Textbox1، "حم" را وارد کردیم، همه‌ی فیلدهای "محمدی"، "محمودی"، "حمیدی" و ... نشان داده شود.

2-
یک TextBox1 داریم و یک DataGrid
می‌خواهیم هرچه در Textbox1 وارد کردیم در فیلد LastName از DataGrid جست‌وجو شود.

ولی این‌بار
نخستین ردیفی که فیلد LastName آن با Textbox ما آغاز می‌شود، انتخاب شود ( و نه فیلتر)

چه کدی پیش‌نهاد می‌کنید.
سپاس‌گزارم.
--------------------
توضیح این‌که DataGrid ما به یک Dataset پیوند دارد.

zarrin_306
پنج شنبه 30 شهریور 1385, 19:46 عصر
Imports system.Data.SQLClient
Publice ClassForm1
Inherits system.Windows.Form.Form

Protected DsData As New DataSet

Protected Const connectionstring as string="........."

Protected const TABLE_NAME as string="Lname"

'drmmain

textbox1.text=""
LOADDB()
end sub

'textbox1

try
call filter_DB()

catch ex as Exseption
eexit try

end sub

Private sub filter_DB()

const MESSAGEBOX_CAPTION as string="جستجو"

with DsData.Tables(TABLE_LASTNAME)
.defultview.rowfilter="LASTNAMElike'%" & textbox1.text & "%'"

if.defultview.count=0 then

messagebox.show("وجود ندارد" ,MESSAGEBOX_CAPTION , _ massageboxbutton.ok,messageboxicon.information)

end if
datagrid1.datasource=.defultview

end with
end sub

Private sub LOADDB()
dim Cn as new sqlconnection(connectionstring)

dim dbadapter as new sqldataadapter("select * from lastname",cn)

dsdata.clear()
dbadapter.fill(dsdata,TABLE_NAME)

datagride.datasource=dsdata.tables(TABLE_LASTNAME)

textbox1.focus()

textbox1.select()
end sub
end class

lizbazar
چهارشنبه 30 آبان 1386, 10:16 صبح
اگه حجم بانک اطلاعاتی ما بزرگ باشه چی ؟؟ راه دیگه ای هم پیدا میشه ؟

ir_programmer
چهارشنبه 30 آبان 1386, 11:42 صبح
اگه حجم بانک اطلاعاتی ما بزرگ باشه چی ؟؟ راه دیگه ای هم پیدا میشه ؟
بالاخره باید جستجو کرد یا نه؟
تازه، جستجو در سطح DataSet هست نه دیتابیس. یعنی قبلا یکبار fill شده!
در مورد رکوردهای زیاد که اصلا همه اطلاعات رو Fill نمی کنند و باید از ترفند ای مختلف مربوطه استفاده کنید.