PDA

View Full Version : نمايش فيلدهاي انتخابي در ديتا گريد



Reza1607
جمعه 15 مرداد 1389, 12:05 عصر
سلام بر همه دوستان
من كد زير رو نوشتم و اگه دقت كنيد مي بينيد كه تو كوئري من تنها سه تا فيلد رو براي خروجي انتخاب كردم ولي با اجراي اين كد تمام فيلدهاي جدول نشون داده مي شه
كسي مي دونه من بايد چيكار كنم كه فقط اون فيلدهاي مورد نظر نمايش داده بشه


Dim query As String = "SELECT member_id,name,family FROM membership"
Dim results As IEnumerable(Of membership) = db.ExecuteQuery(Of membership)(query)
'datagridview1.datasource=results
datagridview1.datasource=results.ToArray()

در ضمن اين نكته رو هم بگم كه كوئري در شرايط خاصي تغيير مي كنه
و اگه اون خطي كه غير فعال كردم رو فعال كنم و خط زيرش رو غير فعال هيچ چيزي در ديتاگريد نمايش داده نميشه

ممنون از توجه شما

Reza1607
یک شنبه 17 مرداد 1389, 10:00 صبح
یعنی کسی نمی دونه؟

Reza1607
دوشنبه 18 مرداد 1389, 11:06 صبح
برای چی کسی به سوال من جواب نمی ده؟
الان دو تا سوال پرسیدم کسی بهشون جواب نمی ده

Mehdi6052
سه شنبه 19 مرداد 1389, 01:10 صبح
سلام

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




Imports System.Data.SqlClient

Dim str_Tb As String = "Coding_Group" ' >>> "Coding"
Dim str_ColKey As String = "GroupCode"

Private Adapter As SqlDataAdapter
Private dSet As New DataSet
Private dView As DataView
Private sCon As New SqlConnection(ConnectionString)

Private obj_Bind As BindingManagerBase


Private Sub fill_DataGrid()
' . را بر عهده دارد DataGridView این تابع وظیفه پر کردن
Try
dSet.Clear()
If Not Adapter Is Nothing Then
Adapter.Dispose()
End If

Adapter = New SqlDataAdapter("Select * from " & str_Tb & _
" Where GroupCode > 0", sCon) ' & " ORDER BY DetailAccCode"

Dim sComB As New SqlCommandBuilder(Adapter)
Adapter.UpdateCommand = sComB.GetUpdateCommand
Adapter.DeleteCommand = sComB.GetDeleteCommand
Adapter.InsertCommand = sComB.GetInsertCommand

dSet.EnforceConstraints = False
Adapter.Fill(dSet, str_Tb)

Dim Prv_Key(1) As DataColumn
Prv_Key(0) = dSet.Tables(str_Tb).Columns(str_ColKey)
dSet.Tables(str_Tb).PrimaryKey = Prv_Key

dGrid.AutoGenerateColumns = False
dView = dSet.Tables(str_Tb).DefaultView

dGrid.DataSource = dView

obj_Bind = BindingContext(dGrid.DataSource, dGrid.DataMember)
dRow = dSet.Tables(str_Tb).Rows

Catch ex As Exception
Msg.ErrorMessage(ex)
End Try

End Sub ' Select from SQL Table ***


Private Sub Binding_Control()
' . را انجام می دهد dGrid کردن کنترل ها به Bind این تابع عملیات
Try
txt_Code.DataBindings.Add("text", dGrid.DataSource, ".GroupCode", True, DataSourceUpdateMode.OnPropertyChanged)
txt_Sharh.DataBindings.Add("text", dGrid.DataSource, ".Sharh", True, DataSourceUpdateMode.OnPropertyChanged)

lbl_Mahiyat.DataBindings.Add("text", dGrid.DataSource, ".Mahiyat", True, DataSourceUpdateMode.OnPropertyChanged)
'Activate_checkbox.DataBindings.Add("Checked", dGrid.DataSource, ".Activate", True, DataSourceUpdateMode.OnPropertyChanged)
'-------------------------------------------------
' dGrid Columns Bind ...

Dim Colum As DataGridViewColumn
For Each Colum In dGrid.Columns
Colum.DataPropertyName = Colum.ToolTipText ' *** Important
Next

Catch ex As Exception
Msg.ErrorMessage(ex)
End Try
End Sub




این روشی است که من در برنامه هایم از آن استفاده کرده ام.

توجه: dGrid یک دیتاگرید است که با اطلاعات پایگاه داده پر می شود.
تابع Binding_Control وظیفه ی وصل کردن دیتاگرید و تکست باکس ها را به DataView بر عهده دارد.

Reza1607
پنج شنبه 21 مرداد 1389, 09:41 صبح
نه من می خوام از linq استفاده کنم و بیشتر کار پروژه رو با استفاده از Linq انجام می دم

Reza1607
دوشنبه 25 مرداد 1389, 10:52 صبح
شرمنده ولی نمی دونم چرا کسی جواب سوال های من رو نمی ده این الان سومین تاپیک منه که متاسفانه دارم پست off می دم تا یکی جواب من رو بده
بازم شرمنده که پست off می دم