首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
goodboy1881 (13)
wangchinaking (58)
iiprogram (67)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
coofucoo (105)
Drate (69)
lphpc (30)
smallnest (61)
CSDN - 文档中心 - .NET 阅读:5223   评论: 2    参与评论
标题   ADO在vb.net中的使用(与datagrid结合)     选择自 jatwu 的 Blog
关键字   Ado,datagrid,datatable
出处  

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

 


相关文章
对该文的评论
CSDN 网友 ( 2005-12-07)
这是知识迁移能力.值得学习啊
cansum396 ( 2004-02-25)
这么麻烦不如直接用ADO.NET了