个人版机房收费系统暂时的告于段落,对于vb.net和sql Sever数据库的交互,现在总结一下。
一 数据库连接
1 vb.net和sql Sever连接,使用的connection是sqlConnection,这也是最常用的连接对象。我们需要在vb.net中引用System.Data以及System.Data.sqlClient.
ImportsSystem.Data
ImportsSystem.Data.sqlclient
2添加完引用之后,就是创建connection对象
连接字符串(告诉connection对象使用什么用户名和密码,连接哪一台计算机上的哪个数据库),其形式如下:
DimconStras string =”Data Source=192.168.**.**;Initial Catalog=Charge_sys;uid=sa;pwd=******"
Dim conn assqlconnection=newsqlConnection(conStr)
3开放和关闭连接
Conn.open
Conn.close
二数据库操作
1使用command对象执行sql语句
创建Command:
dimcmdas newsqlCommand
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中
DimdsasnewDataSet
DimdaasnewsqlDataAdapter
da.Fill(ds,”StudentInfo”)
2 Update,将dataset中的数据更新到数据库
Dimdsasnewdataset
DimdaasnewsqlDataAdapter
da.update(ds,”StudentInfo”)
dataset可以看做不依赖于数据库的独立数据集,当断开或者是关闭数据库是,dataset依然可以使用,dataset主要是由一组datatable对象组成
dimdsasnewdataset
ds.tables.add(dt) ‘向dataset中添加datatable
datatable是一个临时保存数据的网格虚拟表,可以用来存储数据,可以动态添加相关的数据,也可以从某个dataset中得到
sqldataReader,是读取数据库中某个数据的方法,获取的数据时只读类型的,经常和sqlCommand连用
dimsqlas string=” select*fromUserInfowhereUserID=’1’”
dimcmdassqlcommand= newsqlcommand(sql,conn )
dimreadassqlDataReader
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类;
原文链接:https://www.f2er.com/vb/258726.html