ADO.NET数据库访问入门

 .NET程序使用ADO.NET对象访问数据库,因此,要在.net程序中访问数据,需要了解ADO.NET的基本知识。   ADO.NET是由ADO数据访问模型演变而来的。它提供2种连接数据库的方法,分别是连接式和非连接式的。连接式访问时,应用程序与数据库一直保持连接,而不管有没有数据交换。非连接式访问时,只有当应用程序需要数据时才连接到数据库,数据交换完成后又立刻断开。因此非连接式访问可以减少网络流量(连接远程数据库时),.net推荐使用非连接式的访问。1.连接式访问方法先看看下面的流程:数据库-----Connection对象----Command对象---DataReader对象-----显示数据Connection对象就是与数据库建立连接的对象,它是首先应该创建的对象,创建Connection对象时,需要给出数据库的路径,名称,用户名和密码(如果有的话)。它可以细分为SqlConnection和OleDbConnectionCommand对象就是用来向数据库发出SQL命令的对象。在ADO.NET中有2种Command对象:SqlCommand和OleDbCommand,前者是SQL数据库专用的,后者是通用的。DataReader对象:用Command对象执行一个SQL命令后就会返回一个DataReader对象,因此查询结果就在DataReader对象里。DataReader对象也分为SqlDataReader和OleDbDataReader,前者是SQL数据库专用的,后者是通用的。2.非连接式访问方法先看看下面的流程:数据库-----Connection对象------DataAdaper对象-----DataSet对象------显示数据Connection对象:含义与连接式访问方法中相同DataAdaper对象:类似连接式访问方法中的Command对象,可以发出SQL命令,但是DataAdaper对象的功能更多。并且它也细分为SqlDataAdaper和OleDbDataAdaperDataSet对象:用DataAdaper对象执行SQL命令后,需要把返回的结果填充到DataSet对象。DataSet对象是在内存中的一块缓冲区,有点像是本地的一个小数据库。DataSet对象可以像数据库一样包含很多表,每个表用DataTable对象表示。下面以代码示例如何用2种连接方法访问ACCESS数据库:首先,访问数据库需要引system.Data命名空间,还要根据数据库的类型引用system.Data.OleDb (普通数据库)或者system.Data.SqlClient(SQL数据库)命名空间。能举需要可能还应该引用一下命名空间:system.Data.Commom ,system.Data.SqlTypes假设一ACCESS数据库,路径为d:/data.mdb ,其中有表text,包含字段name连接式访问:        Dim a As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/data.mdb")        '连接到数据库        a.Open()    '打开数据库        Dim b As New OleDbCommand("select * from [text]", a)        '定义SQL命令.注意OleDbCommand对象对SQL命令的语法检查较为严格,应尽量采用标准写法        '此处如果写成select * from text 将是错误的        Dim c As OleDbDataReader = b.ExecuteReader        ' 执行SQL命令并把结果返回c ,如果执行的SQL命令不需要返回记录,请不要定义c,并使用b.ExecuteNonQuery        'Read命名用来向下移动记录指针,在读取第一条记录前,先要执行一次Read        While c.Read            'Read命名用来向下移动记录指针            '如果指针到了记录末尾,c.Read返回false            '注意不要用do...loop循环,否则会出错            MessageBox.Show(c("name").ToString)            '输出记录中的name字段        End While        c.Close()        a.Close()   '记得关闭连接非连接式访问: Dim a As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/data.mdb")        '连接到数据库的信息        Dim b As New OleDbDataAdapter("select * from [text]", a)        '定义SQL命令        Dim MyCommandBuilder As New OleDbCommandBuilder(b)  '使用该对象协调对数据库的更改,如果只是查看数据,不更新数据,可以不创建这个对象        b.MissingSchemaAction = MissingSchemaAction.AddWithKey '设置为当使用fill时检索主键信息,如果只是查看数据,不更新数据,可以不写这行        Dim c As New DataSet         b.Fill(c, "t1")        '执行SQL命令,并把执行结果装入c,同时给本次执行结果的数据取个名字t1.因为c里可以装入很多次的执行结果,所以要为每个结果指定名字以便区分        Dim d As DataRow  '定义一个记录对象        For Each d In c.Tables("t1").Rows            '可以使用For Each...Next循环来遍历c中的记录。c.Tables("t1")表示t1这个执行结果,其实就是一个临时表            MessageBox.Show(d("name").ToString)        Next如果要增加记录,可以这样:        d = c.Tables("t1").NewRow()        d("name") = "cat"   '添加数据内容        c.Tables("t1").Rows.Add(d)   '将记录添加到临时表中        c.AcceptChanges()  '提交临时表更改        b.Update(c, "t1")    '将更新后的临时表提交到数据库注意使用Update提交到数据库时,根据情况可能需要设置DataAdapter的insertcommand等属性,一般情况可以用CommandBuilder对象自动设置,并且注意表中是否有主键。修改记录可以使用类似DateSet.Tables("临时表名称").Rows(记录的行数)("字段名")="修改后的值" 这样的语句完成,最后记得UpData.删除记录使用Delete方法,其它一样。ADO.NET的基本用法就是这些,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值