VB中datagrid固定表头后怎么显示rs中的内容呢?
PubliccnAsNewADODB.ConnectionPublicrsAsNewADODB.RecordsetPublicstrAsStringPrivateSubF...
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public str As String
Private Sub Form_Load()
str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\testdata.mdb;"
cn.Open conn
rs.CursorLocation = adUseClient
rs.Open "select * from 表1", str, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
cn.Close
End Sub
经测试rs里面已查询到内容,我的datagrid表是制定了外观的,也就是把标题编辑上去了的,这段程序要是在原始没编辑的datagrid上运行就没问题,怎么能让它编辑了外观也可以显示数据呢? 展开
Public rs As New ADODB.Recordset
Public str As String
Private Sub Form_Load()
str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\testdata.mdb;"
cn.Open conn
rs.CursorLocation = adUseClient
rs.Open "select * from 表1", str, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
cn.Close
End Sub
经测试rs里面已查询到内容,我的datagrid表是制定了外观的,也就是把标题编辑上去了的,这段程序要是在原始没编辑的datagrid上运行就没问题,怎么能让它编辑了外观也可以显示数据呢? 展开
1个回答
展开全部
想定义datagrid的外观,需要编写datagrid的style
以及datagrid中Column的style
在定义style时,你需要把每一个Column的mappingname设定为对应的作为数据源传进来的datatable的要显示出来的列的名字
之后再把作为数据源传进来的datatable传给datagrid的datasourse
举例:
'对DataGrid初始化的代码
Private Sub InitDataGrid()
Private dgTableStyle As DataGridTableStyle
dgTableStyle = New DataGridTableStyle
dgTableStyle.MappingName = DataTable1.TABLE_NAME
dgTableStyle.AllowSorting = False
Dim dgColumnStyle1 As New DataGridTextBoxColumn
dgColumnStyle1.ReadOnly = True
dgColumnStyle1.MappingName = "NO"
dgColumnStyle1.HeaderText = "NO"
dgColumnStyle1.Alignment = HorizontalAlignment.Right
dgColumnStyle1.Width = 120
dgColumnStyle1.NullText = ""
dgTableStyle.GridColumnStyles.Add(dgColumnStyle1)
Me.DataGrid1.TableStyles.Add(dgTableStyle)
Me.DataGrid1.AllowSorting = False
End Sub
'给DataGrid赋datatable的语句
Me.DataGrid1.DataSource = DataTable1
'说明
赋值给dgColumnStyle1.MappingName 的是DataTable1中的一个列的列明,上面的例子中DataTable1就有一个列叫NO
以及datagrid中Column的style
在定义style时,你需要把每一个Column的mappingname设定为对应的作为数据源传进来的datatable的要显示出来的列的名字
之后再把作为数据源传进来的datatable传给datagrid的datasourse
举例:
'对DataGrid初始化的代码
Private Sub InitDataGrid()
Private dgTableStyle As DataGridTableStyle
dgTableStyle = New DataGridTableStyle
dgTableStyle.MappingName = DataTable1.TABLE_NAME
dgTableStyle.AllowSorting = False
Dim dgColumnStyle1 As New DataGridTextBoxColumn
dgColumnStyle1.ReadOnly = True
dgColumnStyle1.MappingName = "NO"
dgColumnStyle1.HeaderText = "NO"
dgColumnStyle1.Alignment = HorizontalAlignment.Right
dgColumnStyle1.Width = 120
dgColumnStyle1.NullText = ""
dgTableStyle.GridColumnStyles.Add(dgColumnStyle1)
Me.DataGrid1.TableStyles.Add(dgTableStyle)
Me.DataGrid1.AllowSorting = False
End Sub
'给DataGrid赋datatable的语句
Me.DataGrid1.DataSource = DataTable1
'说明
赋值给dgColumnStyle1.MappingName 的是DataTable1中的一个列的列明,上面的例子中DataTable1就有一个列叫NO
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询