基本数据库连接的具体步骤:
1)创建和打开数据库链接
Dim conPubs As SqlConnection
conPubs =New SqlConnection("server;uid; pwd=;database=;")
conPubs.Open()
创建一个名为conpubs的SqlConnection类事例,通过SqlConnection类的构造器传递一个连接字符串参数,对conpubs类进行初始化。最后通过调用sqlConnection类的Open()的方法实际打开链接。但是连接的时间只有15秒。可以在初始化中再加一段代码:
conPubs =New SqlConnection("server;uid; pwd=;database=;Connect_Timeout=90")
3)选择读取的方式 Command DataReader 或者是 DataAdapter 和 Dateset
如果你要获取一些数据,并且快速地显示在网页上,那么使用前一种,但是如果需要操作但开连接的内存数据库记录,就需要使用后一种
应为DataAdapter必须保持到数据库表的连接,必须调用Reader方法从底层数据库中获取每个新记录,转载进内存,所以不能在多个页面上面或者跨相同页面的多次请求使用相同的DataReader
而Dateset 提供驻留于内存的数据表示,所以可以将数据库的查询的结果作为一个整体进行操作,例如它包含于排序,过滤,和返回 但是它虽然避免连接到数据库服务器,但是要占用大量内存。
所以如果每次请求页面时获取不同的数据集用DataReader,但是请求页面获得相同数据时如排序,则使用 Dateset
4)显示数据
5)断开数据库
第一类读取方式:Command DataReader
一、Select语句需要完成的步骤:
注意:以下例子中都未引用名称空间 大家在连接数据库时一定写入以下两行代码:
Imports System.Data
Imports System.Data.sqlClint
1、 返回多条语句时:
1)创建和打开数据库链接
2)创建一个代表要执行的Sql Select语句的数据库命令
3)用ExecuteReader()方法执行这个命令,并且返回一个DataReader
4)遍历DataReader,显示查询的结果 (用Read方法)
事例:
Dim conPubs As SqlConnection
Dim cmdSelectAuthors As SqlCommand
Dim dtrAuthors As SqlDataReader
conPubs =New SqlConnection("server=localhost;uid=sa; pwd="";database=pubs")
conPubs.Open()
cmdSelectAuthor= New Command("Select au_lname from Authors",conPubs)
dtrAuthors =cmdSelectAuthors.ExecuteReader
While dtrAuthors.Read()
Response.Write("<li>") '*
Response.Write(dtrAuthors("au_lname"))'*
End Wile
conPubs.Close()
也可以把循环语句写成:
txtBox1.text&=vbNewLine
Dim intField As integer
For intField=0 To dtrAuthors.Field.Count=-1
txtBox1.text&=dtrAuthors(intField).ToSring().PadRight(15)
Next
2、如果只需要返回一条语句,那么只需要用ExecuteScalar
事例:
Dim conPubs As SqlConnection
Dim cmdSelectCount As SqlCommand
conPubs =New SqlConnection("server=localhost;uid=sa; pwd="";database=pubs")
conPubs.Open()
cmdSelectCount= New Command("Select Count(*) from Authors",conPubs)
lblResult.text=cmdSelectCounts.ExecuteScalar
conPubs.Close()
二、Insert ,Delete update 语句所要完成的步骤:
1)创建和打开数据库链接
2)创建代表要执行的Sql 语句
3)用ExecteNonQuery()方法执行命令
事例:
Dim conPubs As SqlConnection
Dim cmdSelectAuthors As SqlCommand
conPubs =New SqlConnection("server=localhost;uid=sa; pwd="";database=pubs")
conPubs.Open()
cmdSelectAuthor= New Command("insert Authors (ProductName,UnitPrice) Values ('Milk','12.45')",conPubs)
cmdSelectAuthors.ExecuteNonQuery
conPubs.Close()
Sql语句:
Update Authors Set au_lname='Smith' Where au_lname='Benner'
insert Authors (au_lname) Values ('smith')
Delete Authors Where au_lname='smith'
可以使用两种方式输入数据:
insert Authors (ProductName) Values (@au_lname)
cmdSelectAuthors.Parameters.Add(@au_lname,txtAuthorName.text)
或者直接:
insert Authors (ProductName) Values ('"+txtAuthorName.text+"')
第二类:DataAdapter 和 Dateset
DataAdapter类作为 Dateset与它代表的数据源之间的桥梁。使用DataAdapter可以填充Dateset,或者对Dateset进行修改更新现有的数据。
步骤:
1)创建一个Dateset
2)创建一个数据库连接
3)使用sql语句和数据库连接创建一个DataAdapter
4)调用DataAdapter的fill方法,传递Dateset的名称和新的Datetable名称
dim d as datagrid
Dim a as sqlconnection
a=new sqlconnection()
dim b as sqldataAdapter
dim c as dataset
c=new dataset
b=("select",a)
a.open()
b.fill(c,"au_lname")
d.datasource=c
d.databind()
注意事项:
Sql中使用单引号表明字符串的开头和结尾。
http://www.connectionstrings.com/ 可以找到你要的连接字符串