通过ADO.NET操作数据库
1.连接
要访问数据库,首先要与数据库建立连接,在ado.net中是通过connection对象与数据库建立连接的
例如:建立与sqlserver服务器上mycharge数据库连接的代码:
[html]
dim cnstr as string="password=123456;persist security info=true;user id=sa;"&_
"initialcatalog=mycharge;data source=192.168.24.60"
dim cn assqlconnection =new sqlconnection ()
cn.connectionstring=cnstr 'connectionstring 是connection对象最重要的一个属性,它用来指定与数据库建立连接时使用的连接串
cn.open ()'打开连接
既然代码中提到了连接串,那我们就来说说连接串,平常大家在建立与数据库连接时都要写那一大串连接串,其实书写起来也不麻烦(前提你比较熟悉而且细心),不过错一点也连不上啊,这时候我们可以选择下面的这种方法来获取连接串
1.新建一个文本文件,将其扩展名改为udl
2.双击你刚建好的文件,将打开“数据库连接属性”对话框
3.在“提供程序”选项卡选择某个提供者,这里我们选的是sql server,单击下一步按钮
4.在“连接”选项卡中输入数据库名称,用户名,密码等信息,单击“测试连接”按钮查看连接是否成功
5.如果成功的话,关闭此对话框,使用记事本再次打开该文件,其中就包含你想要的信息了
注意:由于sqlserver对象是专门针对sqlserver数据库的,它的连接串中不允许指定provider属性,所以你不要激 动的把上面所有的信息都复制下来,那样是不对的,而要将provider=sqloledb.1去掉,只复制其后的内容就足够啦!对于其他数据提供程序的connection对象,如oledbconnection对象就不存在这个问题
2.命令
ado.net访问数据的基本方式
使用数据集
直接对数据库进行操作
如何使用数据集访问?
1.填充数据集
将外部数据源数据加载到数据集中(使用适配器)
什么是适配器
适配器就好像是一座桥梁,用于数据源和数据集之间减缓数据,如图所示
使用适配器可以对数据进行增,删,改,查,分别为:
selectcommand:指定某命令对象以便从数据存储区检索行
insertcommand:指定某命令对象以便向数据存储区插入行
updatecommand:指定某命令对象以便修改数据存储区中的行
deletecommand:指定某命苦对象以便从数据存储区删除行
2.数据集更新
更新数据集中的数据(一般为增,删,改)
将更新后的数据集同写到数据源中,也就是说,更新数据集的过程不会同时将更改直接写入数据源,因为数据源是断开连接的,必须通过代码显式执行一下。具体做法是调用数据适配器的update方法
注:在某些情况下是不能使用数据集的。例如想要创建表之类的数据库元素,则必须使用命令对象
如何直接对数据库进行操作?
通过command(命令)对象执行sql语句或存储过程,如果执行的结果返回的是一个记录集,则可以使用datareader(数据读取器)对象读取数据。.net针对不同的提供程序创建了相应的command对象,例如:
oledbcommand:用于ole db提供程序
sqlcommand:sql server7.0或更高版本
odbccommand:odbc数据源的command对象
使用command对象的步骤
1.构造命令对象
下面是一段构造cmd命令对象的代码。它使用的连接对象为cn。所要执行的命令是从information表中选择所有的数据
[html]
dim cnstr as string="password=123456;persist security info=true;user id=sa;"&_
"initialcatalog=mycharge;data source=192.168.24.60"
dim cn assqlconnection =new sqlconnection ()
cn.connectionstring=cnstr 'connectionstring 是connection对象最重要的一个属性,它用来指定与数据库建立连接时使用的连接串
cn.open ()
dim sql as string="select*from categories"
dim cmd assqlcommand =new sqlcommand ()
cmd .connection =cn
cmd.commandtext =sql
2.执行命令
命令对象所提供的用于执行命令的方法有很多,具体使用哪个方法取决于命令的执行结果返回什么样的数据
cancel:取消命令的执行
executenonquery:执行非查询类sql语句并返回受影响的行数
executereader:执行查询,将查询结果返回到datareader中
executescalar:执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行
executexmlreader:执行查询,将查询结果返回到一个xmlreader对象中
3.读取数据
下面代码是从表information中读取数据,并将数据列id和name的所有数据输出到控制台
[html]
dim cnstr as string="password=123456;persist security info=true;user id=sa;"&_
"initialcatalog=mycharge;data source=192.168.24.60"
dim cn assqlconnection =new sqlconnection ()
cn.connectionstring=cnstr 'connectionstring 是connection对象最重要的一个属性,它用来指定与数据库建立连接时使用的连接串
cn.open ()
dim sql as string="select*from categories"
dim cmd assqlcommand =new sqlcommand (sql ,cn )
dim dr assqldatareader =cmd.executereader()
while (dr.reader())
dim id as string=dr("id").tostring()
dim name as string=dr("name").tostring()
console.writeline("编号:{0}姓名:{1}" ,id ,name)
end while
dr.close()
cn.close()
注:
datereader是一个只向前的连接光标,即只能沿一个方向遍历记录,在此过程中数据库连接要一直保持打开状态,否则将不能通过datareader读取数据
在完成数据读取后,需要调用close()方法关闭datareader对象,
下一篇: photoshop制作质感磨砂蓝色背景