PDA

View Full Version : بروز رسانی دیتاگرید ویو



Veteran
یک شنبه 06 فروردین 1391, 23:25 عصر
سلام دوستان.
به چه شکل میشه دیتاگرید ویو رو بروز رسانی کرد ؟
فرض کنین ما داریم یک دستور sql مثل دستور سرچ رو روی بانک اعمال میکنیم
میخوایم بعد از اجرای کد نتیجه سرچ به ما نشون داده بشه.
اما از اونجایی که دیتاگرید ویو بعد از اجرا کد بروز رسانی نمیشه نتجیه با ما نشون داده نمیشه

از این هم استفاده کردم اما نشد

Form1_Load(sender, e)
واسه دستوراتی مثلا اضافه کردن پاک کردن و این دسته از کد ها مناسبه اما برای سرچ نه چون اگر ما فرم رو لود کنیم دوباره به بانک وصل میشیم و کوئری ما از بین میشه
با تشکر

Hybrid
یک شنبه 06 فروردین 1391, 23:37 عصر
سلام ،
واسه سرچ کردن شما بهتره نتیجه ی جستجو رو در یک datatable بریزید و از اون استفاده کنید نه اینکه دستور سلکت رو فراخوانی کنید ، چیزی شبیه کد زیر :


Function Search(ByVal FieldName As String, ByVal SearchFor As String) As DataTable
Dim oledbDataAdapter1 As New OleDbDataAdapter
With oledbDataAdapter1
.SelectCommand = New OleDbCommand
.SelectCommand.Connection = oledbConnection1
.SelectCommand.CommandType = CommandType.Text
.SelectCommand.CommandText = "Select * from person Where " & FieldName & " like '%" & SearchFor & "%' order by Person_ShAks"
If .SelectCommand.Connection.State <> ConnectionState.Open Then
.SelectCommand.Connection.Open()
End If
.SelectCommand.ExecuteNonQuery()
Dim ds As New MyDs
oledbDataAdapter1.Fill(ds, "Person")
Return ds.Person
End With

End Function

این تابع بالا جستجو رو انجام میده و نتیجه رو داخل یک datatable میریزه و شما میتونین مثل قطعه کد زیر ازش استفاده کنید :


DataGridView1.DataSource = obj.Search("person_ShAks", Trim(txtSearch.Text))

در دستور بالا من اومدم از اون تابعی که واستون نوشتم استفاده کردم و نتیجه رو داخل datasource دیتاگرید ویو گذاشتم .

سوالی داشتین بپرسین.

موفق باشید./

فرید نجفلو
دوشنبه 07 فروردین 1391, 01:52 صبح
سلام ،
واسه سرچ کردن شما بهتره نتیجه ی جستجو رو در یک datatable بریزید و از اون استفاده کنید نه اینکه دستور سلکت رو فراخوانی کنید ، چیزی شبیه کد زیر :


Function Search(ByVal FieldName As String, ByVal SearchFor As String) As DataTable
Dim oledbDataAdapter1 As New OleDbDataAdapter
With oledbDataAdapter1
.SelectCommand = New OleDbCommand
.SelectCommand.Connection = oledbConnection1
.SelectCommand.CommandType = CommandType.Text
.SelectCommand.CommandText = "Select * from person Where " & FieldName & " like '%" & SearchFor & "%' order by Person_ShAks"
If .SelectCommand.Connection.State <> ConnectionState.Open Then
.SelectCommand.Connection.Open()
End If
.SelectCommand.ExecuteNonQuery()
Dim ds As New MyDs
oledbDataAdapter1.Fill(ds, "Person")
Return ds.Person
End With

End Function

این تابع بالا جستجو رو انجام میده و نتیجه رو داخل یک datatable میریزه و شما میتونین مثل قطعه کد زیر ازش استفاده کنید :


DataGridView1.DataSource = obj.Search("person_ShAks", Trim(txtSearch.Text))

در دستور بالا من اومدم از اون تابعی که واستون نوشتم استفاده کردم و نتیجه رو داخل datasource دیتاگرید ویو گذاشتم .

سوالی داشتین بپرسین.

موفق باشید./

دوست عزیز بهتر بود تابع شما یک پارامتر دیگر به عنوان نام جدولیل نیز می گرفت تا بتوان از آن به جای یک فرم و جدول ،در سطح کل برنامه استفاده کرد!

Veteran
دوشنبه 07 فروردین 1391, 09:36 صبح
سلام ،
واسه سرچ کردن شما بهتره نتیجه ی جستجو رو در یک datatable بریزید و از اون استفاده کنید نه اینکه دستور سلکت رو فراخوانی کنید ، چیزی شبیه کد زیر :


Function Search(ByVal FieldName As String, ByVal SearchFor As String) As DataTable
Dim oledbDataAdapter1 As New OleDbDataAdapter
With oledbDataAdapter1
.SelectCommand = New OleDbCommand
.SelectCommand.Connection = oledbConnection1
.SelectCommand.CommandType = CommandType.Text
.SelectCommand.CommandText = "Select * from person Where " & FieldName & " like '%" & SearchFor & "%' order by Person_ShAks"
If .SelectCommand.Connection.State <> ConnectionState.Open Then
.SelectCommand.Connection.Open()
End If
.SelectCommand.ExecuteNonQuery()
Dim ds As New MyDs
oledbDataAdapter1.Fill(ds, "Person")
Return ds.Person
End With

End Function

این تابع بالا جستجو رو انجام میده و نتیجه رو داخل یک datatable میریزه و شما میتونین مثل قطعه کد زیر ازش استفاده کنید :


DataGridView1.DataSource = obj.Search("person_ShAks", Trim(txtSearch.Text))

در دستور بالا من اومدم از اون تابعی که واستون نوشتم استفاده کردم و نتیجه رو داخل datasource دیتاگرید ویو گذاشتم .

سوالی داشتین بپرسین.

موفق باشید./
به چندتا دستور گیر میده

Hybrid
دوشنبه 07 فروردین 1391, 10:12 صبح
سلام ،


دوست عزیز بهتر بود تابع شما یک پارامتر دیگر به عنوان نام جدولیل نیز می گرفت تا بتوان از آن به جای یک فرم و جدول ،در سطح کل برنامه استفاده کرد!
حق با شماست ولی فقط میخواستم کاربرد Dt رو واسشون توضیح بدم !


به چندتا دستور گیر میده

1 ) به شکل زیر تغییرش بده تا درست بشه (از این تابع در یکی از پروژه هام استفاده کرده بودم یه کم تغییر لازم داشت ! ) :

Function Search(ByVal FieldName As String, ByVal TableName As String, ByVal SearchFor As String) As DataTable
Dim oledbDataAdapter1 As New OleDbDataAdapter
Dim oledbconnection1 As New OleDbConnection
oledbconnection1.ConnectionString = "کانکشن استرینگ شما"
With oledbDataAdapter1
.SelectCommand = New OleDbCommand
.SelectCommand.Connection = oledbconnection1
.SelectCommand.CommandType = CommandType.Text
.SelectCommand.CommandText = "Select * from " & TableName & " Where " & FieldName & " like '%" & SearchFor & "%'"
If .SelectCommand.Connection.State <> ConnectionState.Open Then
.SelectCommand.Connection.Open()
End If
.SelectCommand.ExecuteNonQuery()
Dim dt As New DataTable
oledbDataAdapter1.Fill(dt)
Return dt
End With

End Function