【ADO.NET】数据库操作

接触ADO.NET,下午自己摸索着用代码实现了点增删改查的知识,特此总结  分享一下  


Select :用于检索数据

Insert:用于增加数据到数据库

Update:用于从数据库中修改现存的数据

delete:用于从数据库中删除数据 

 

ADO.NET包含四个主要对象

Connection对象:用于连接数据库

command对象:对数据源执行命令

dataReader对象:在只读和只进的连接模式下从数据源读取数据

DataAdapter对象:从数据源读取数据并使用所读取的数据填充数据集对象


下面是具体的一些小实践

  1.    连接 

要访问数据库,首先要与数据库建立连接,这就用到了connection对象来与特定的数据库建立连接 具体语句如下:

 Dim cnStr As String= "Persist Security Info=False;User ID=sa;Initial Catalog=需要连接的数据库名;Data Source=IP或本机名字;pwd=密码"
        Dim cn As SqlConnection = NewSqlConnection(cnStr)
        cn.Open()
 

        2.   命令

ADO.NET 提供了两种访问数据库的基本方式

1.使用数据集,

直接对数据库进行操作 这些就需要command对象来执行SQL语句实现,在连接好数据库的基础上,首先我们要构造命令对象

DimcnStr As String = "Persist Security Info=False;User ID=sa;InitialCatalog=StudentSystem;Data Source=192.168.24.74;pwd=123456"
        Dim cn As SqlConnection = NewSqlConnection(cnStr)
        cn.Open()
        Dim sql1 As String = "select *from T_user "
        Dim cmdq As SqlCommand = NewSqlCommand(sql1, cn)


例如上述代码便是构造了一个名称为cmdp的命令对象,它使用的连接对象为cn,所要执行的命令是从表T_user中选择所有的数据

而对于command对象的几个基本重要属性如下 

属性

含义

commandText

获取或设置要对数据源执行的SQL语句或存储过程

commandTimeout

获取或设置在终止执行命令的尝试并生成错误之前的等待时间

commandType

获取或设置一个值,该值指示如何解释commandText

connection

获取或设置该命令对象使用的connection连接对象

对于上段代码中的Dim cmdq As SqlCommand= New SqlCommand(sql1, cn)这句话我们也可以用另一种方式来描述

 Dim cmdq As SqlCommand = New SqlCommand()
        cmdq.CommandText = sql1
        cmdq.Connection = cn


表达的意思是一样的,这里就利用了command对象的几个属性,这样就可以清晰的看出每个属性该怎么应用 


3.读取数据DataReader


它是一个从数据源中选择某些数据的最简单的方法,DataReader没有构造函数,因此不能实例化,但可以通过command对象的executeReader方法返回一个实例  例如下面的代码

 

Dim cnStr As String = "Persist SecurityInfo=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
                    'Dim dr As SqlDataReader =cmdq.ExecuteReader()
        'While (dr.Read())
        '   Dim uid As String = dr("U_ID").ToString()
        '   Label1.Text = uid
        'End While

 将需要的数据读取出来并输出到文本里面


4.数据的插入:


这里我自己用了一个小例子,打算在三个文本框中输入内容,将这些内容保存到数据库中 具体实现代码如下:

Dim cnStr As String = "Persist SecurityInfo=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
                    'Dim dr As SqlDataReader =cmdq.ExecuteReader()
        'While (dr.Read())
        '   Dim uid As String = dr("U_ID").ToString()
        '   Label1.Text = uid
        'End While

在这里我的理解是,在传递值到数据库的过程中,设定以一个参数,通过这个参数在中间来传递值,也就是占位符,文本框把值传给了占位符参数中,而它又把这个值传给了数据库中,进而将数据存储在数据库中! 占位符在这里是一个中间变量,这样传递会更安全些吧,文本框只需知道把值传给占位符就可以了,而哪个表需要这些传就来的数据直接从占位符那里取出就可以了,这是不是也就降低了耦合呢! 

3.数据的读取

 

在我将数据插入到数据库后,加入我想将数据读取出来,显示到控制台上又该如何操作呢,实践代码如下:

 

Private Sub Button2_Click(sender As Object, eAs EventArgs) Handles Button2.Click
        Dim cnStr As String = "PersistSecurity Info=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
        Dim cn As SqlConnection = NewSqlConnection(cnStr)
        cn.Open()
       
        Dim sql1 As String = "select *from T_user "
        Dim cmdq As SqlCommand = NewSqlCommand(sql1, cn)
        Dim adp As SqlDataAdapter = NewSqlDataAdapter()
        adp.SelectCommand = cmdq
        Dim ds As DataSet = New DataSet()
        adp.Fill(ds, "T_user")
       TextBox1.DataBindings.Add("text", ds,"T_user.U_userlevel")
       TextBox2.DataBindings.Add("text", ds, "T_user.U_ID")
       TextBox3.DataBindings.Add("text", ds,"T_user.U_password")
           End Sub
EndClass

只需要改变SQL语句即可,在我们插入时用insert  而在读取时需要select  更新时用update 删除时是delete  

在上述代码中读取数据时,就用到了DataAdapter 以及DataSet

DataSet是一个数据的脱机容器,可以形象地描述为内存中的数据库。上述代码中我将需要的数据填充到数据集中,然后将数据从数据库中需要使用到适配器,也就是Dataadapter

Dataadapter就像是一座桥梁用于在数据源和数据集之间交换数据


 

而数据适配器可以读取、添加、删除、更新数据源中的记录  它的四个属性如下:

1.SelectCommand:指定对象以便从数据存储区检索行

2.InsertCommand:指定某命令对象以便想数据存储区插入行

3.UpdateCommand:指定某命令对象以便修改数据存储区中的行

DeleteCommand:指定某命令对象以便从数据存储区中删除行 

 

 

暂时先总结这些,学无止境,革命尚未成功,战士仍需努力!

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值