VB6.0 Datatable与Recordset转换

二次信任 提交于 2020-11-27 09:08:27

这里介绍新的datagrid.datasoure所对应的是VB6.0 datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成VB6.0 datatable或dataset。

 

VB6.0还是比较常用的,于是我研究了一下VB6.0 datatable,在这里拿出来和大家分享一下,希望对大家有用。

 

在VB6.0在,ADO是大家在数据库编程中用得较多的。而在新的vb.net中,虽然也可以用它来查询数据库,但在与新的datagrid的绑定中,不能像以前那样使用:“datagrid1.datasoure=rs”,而是需要一定的转化。因为新的datagrid.datasoure所对应的是VB6.0 datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成VB6.0 datatable或 dataset。我们以VB6.0 datatable为例:

 

Function RecordsetToDataTable(ByVal adoRS As ADODB.Recordset, ByVal strTable As String)  
  adoRS.MoveFirst()  
  Dim dt As DataTable  
  dt = New DataTable(strTable)  
  Dim i As Integer  
  Dim strcolname As String  
  Dim t As Type  
  Dim dr As DataRow  
  For i = 0 To adoRS.Fields.Count - 1  
  strcolname = adoRS.Fields(i).Name  
  t = adoRS.Fields(i).Value.GetType()  
  dt.Columns.Add(strcolname, t)  
  Next  
  While (Not adoRS.EOF)  
  dr = dt.NewRow()  
  For i = 0 To adoRS.Fields.Count - 1  
  dr(i) = adoRS.Fields(i).Value  
  Next  
  dt.Rows.Add(dr)  
  adoRS.MoveNext()  
  End While  
  Return dt  
End Function

 

 

以上函数是实现将Recordset转换成DataTable。而我们要做的,就是在窗口的load中加入对ADO中的转化后再进行引用。

 

Dim dts As DataTable  dts = RecordsetToDataTable(rsuser, "login")   

'其中rsuser为ado.Recordset,"login"为表名  

DataGrid1.DataSource = dts.DefaultView
————————————————

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!