个人版机房收费系统暂时的告于段落,对于vb.net 和SQL Sever 数据库的交互,现在总结一下。
一 数据库连接
1 vb.net 和SQL Sever 连接,使用的connection 是SqlConnection,这也是最常用的连接对象。我们需要在vb.net 中引用System.Data以及System.Data.SqlClient.
Imports System.Data
Imports System.Data.sqlclient
2 添加完引用之后,就是创建connection 对象
连接字符串(告诉connection对象使用什么用户名和密码,连接哪一台计算机上的哪个数据库),其形式如下:
Dim conStr as string =”Data Source=192.168.**.**;Initial Catalog=Charge_sys;uid=sa;pwd=******"
Dim conn as Sqlconnection=new SqlConnection(conStr)
3 开放和关闭连接
Conn.open
Conn.close
二数据库操作
1 使用command对象执行SQL语句
创建Command:
dim cmd as new sqlCommand
cmd.connnetion=conn
cmd.commandtext=” ” 这里是sql 语句
2执行sql语句:
前提必须是conn 连接打开:
conn.open
Cmd.executenonquery()
3 注意事项:连接打开,执行完sql语句之后,必须进行关闭,否则当连续执行sql 语句的时候会出现异常
三 dataadapter,dataset,datareader 和datatable的相关使用
Dataadapter 是专门用来处理脱机数据的,它将查询到的数据放入dataset中(自己理解的是计算机内存中)这样当数据库连接关闭的后也可以对存放在内存中的数据集进行操作;如果只需要执行sql语句,就没必要用到dataadapter。
主要方法:
1 Fill,将数据库中的数据填充到dataset中
Dim ds as new DataSet
Dim da as new SqlDataAdapter
da.Fill(ds,”StudentInfo”)
2 Update,将dataset中的数据更新到数据库
Dim ds as new dataset
Dim da as new SqlDataAdapter
da.update(ds,”StudentInfo”)
dataset 可以看做不依赖于数据库的独立数据集,当断开或者是关闭数据库是,dataset依然可以使用,dataset主要是由一组datatable对象组成
dim ds as new dataset
ds.tables.add(dt) ‘向dataset中添加datatable
datatable是一个临时保存数据的网格虚拟表,可以用来存储数据,可以动态添加相关的数据,也可以从某个dataset中得到
sqldataReader,是读取数据库中某个数据的方法,获取的数据时只读类型的,经常和sqlCommand连用
dim sql as string =” select * from UserInfo where UserID=’1’”
dim cmd as sqlcommand = new sqlcommand(sql ,conn )
dim read as SqlDataReader
conn .open ()
read=cmd.executeReader
user.userID=read.item(0)这里也可以是user.userID=read.item(“UserID”),即数据库字段名称或是索引号。
我们通过一个简单例子来使用一下前面介绍的对象;
Dim Constring as string=”data source=192.168.24.**;database=Charge_Sys;uid=sa;pwd=202414;”
Dim sqltxt as string =”Select * from User_Info”
Dim sqlconn as new sqlconnection(Constring)
Dim sqlcmd as new sqlcommand(sqltxt,sqlconn)
Dim da as new sqldataadapter(sqlcmd)
Dim ds as dataset
Dim read as sqldataReader
Try
Sqlconn.open()
Read=sqlcmd.executeReader
Read.Read()
Msgbox (read.item(3))
Read.close()
Da.Fill(ds,”UserInfo”)
Datagridview1.datasource=ds.table(“UserInfo”)
Catch ex As Exception
Msgbox(ex.message)
Finally
Sqlcmd.dispose()
End Try
其实,对于sql 和vb.net 的交互,如果说使用三层结构的话,这种最原始的交互方式是不适合的,因为复杂的数据库中对数据库的操作何止简简单单的一个!!!如果对数据库每进行一次操作,就要这样写一次的话,三层的意义也就不存在了,因此,那些大牛就想到了将对数据库的增删改查全都封装到一个类中,根据参数,返回值的不同情况,来执行对数据库的交互,操作等,这就是我们下次要写的sqlHelper类;