ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文旨在介绍ASP.NET Beta2数据库编程的主要内容,帮助编程者最快的了解ADO.NET数据库编程的精髓。 一、 Managed Providers 如果你是初学者,可能你会问,什么是"Managed Providers"? Managed Providers提供简单的方法连接和访问数据库,有点类似于数据库连接,当然又比它强的多。Managed Providers提供OleDb和SQL Server两种编程接口。因为SQL Server是微软自己的产品,因此,专门提供了一个针对SQL Server的接口,使用这个接口访问SQL Server的效率应该比使用OleDb强。 NameSpaces 本文所有的例子程序都需要使用以下NameSpaces:<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Oledb" %> Connection 为了连接数据库,必须使用OleDbConnection:Dim objConn as New OleDBConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\users.mdb") 当然,你也可以将具体的连接方法作为变量使用,在连接数据库以后,必须打开数据库:objConn.Open() 这样,就可以使用数据库了,一般在最后,我们都要求关闭数据库连接:objConn.Close() objConn=Nothing Command 连接数据库以后,就可以发送命令对数据库进行操作了,OleDbCommand允许发送命令对数据库进行操作。根据发送的SQL语句,我们可以对数据库进行几乎所有操作。Dim objCmd as New OleDbCommand("SELECT * From users", objConn) 以上语句建立Command,根据习惯不同,也可以使用以下方法:Dim objCmd as New OleDbCommand() objCmd.Connection = objConn objCmd.CommandText = "SELECT * FROM users" 还可以这样:Dim objCmd as New OleDbCommand(SQL String, connection string) 仔细观察上面的语句,我们发现在定义OleDbCommand时,可以同时使用数据库连接OleDbConnection和数据库连接语句。以上代码并没有执行SQL语句,现在我们来看到底怎样执行: ExecuteNonQuery 当执行没有返回数据的操作的时候,我们可以使用以上方法,比如插入数据、更新数据等操作,具体这样执行:objCmd.ExecuteNoQuery ExecuteReader 在需要一个Data Reader的时候,我们可以使用以上方法,具体这样执行:Dim objRd as OleDbDataReader objRd = objCmd.ExeuteReader ExecuteScalar 使用ExecuteScalar方法来取得一个单个地返回数据,比如对数据的统计。 Data Reader OleDbReader是专门用来读取数据的对象,这个对象除了读数据以外,不能做其他任何数据库操作。尽管比较简单,但是在用来浏览数据的时候效率是非常高的。Dim objReader as OleDbDataReader objReader = objCmd.ExecuteReader While objReader.Read Response.Write(objReader.GetString(0) & "<br>") End While 以上语句读取Command的返回结果的第一个字段,这个字段是字符型数据。我们可以使用其他方法取得各种类型的数据: GetBoolean(x) GetByte(x) GetBytes(x) GetChar(x) GetChars(x) GetDataTypeName(x) -取得数据类型 GetDateTime(x) GetDecimal(x) GetDefaultStream(x) GetDouble(x) GetFieldType(x) GetFloat(x) GetGuid(x) GetInt16(x) GetInt32(x) GetInt64(x) GetName(x) - 取得字段名 GetOrdinal(name) -根据字段名取得字段序号 GetString(x) GetTimeSpan(x) GetValue(x) GetValues(values()) 以上方法都是Command返回数据。 Data Adapter OleDbDataAdapter取得数据并且数据与DataSet之间建一座桥梁,可以这样使用:Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn) 实现方法有点类似于OleDbCommand。OleDbAdapter可以填充DataSet,也可以修改数据然后提交以实现对具体数据的修改:Dim ds as Dataset = New DataSet() objAdapter.Fill(ds, "users") 以上语句实现将SQL语句取得的Users表的数据填充到DataSet。 Mappings Mappings可以实现对DataSet的列取别名:objAdapter.TableMappings.Add("adbtable", "users") With objAdapter.TableMappings(0).ColumnMappings .Add("PID", "ID") .Add("LastName", "LName") .Add("StreetAddress", "Addy") End With objAdapter.Fill(ds) 当使用了以上代码以后,就可以用ds.Tables("users")来代替ds.Tables("adbtable")了。 Command Builder 在下一章我们可以看到Command Builder的具体使用和强大功能。 练习: 如果你能理解以下代码,你就可以看下一章的内容了:<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Oledb" %> <script language="VB" runat="server"> Sub Page_Load(sender as object, e as eventargs)Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\users.mdb") objConn.Open()Dim ds as Dataset = New DataSet() Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn) Dim objCmdBld As New OleDbCommandBuilder(objAdapter)objAdapter.Fill(ds, "users")End Sub </script>
http://www.microsoft.com/china/msdn/adonet.asp
十分同意
.net框架 / 使用.net框架编程 /通过ado.net访问数据
ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文旨在介绍ASP.NET Beta2数据库编程的主要内容,帮助编程者最快的了解ADO.NET数据库编程的精髓。 一、 Managed Providers 如果你是初学者,可能你会问,什么是"Managed Providers"? Managed Providers提供简单的方法连接和访问数据库,有点类似于数据库连接,当然又比它强的多。Managed Providers提供OleDb和SQL Server两种编程接口。因为SQL Server是微软自己的产品,因此,专门提供了一个针对SQL Server的接口,使用这个接口访问SQL Server的效率应该比使用OleDb强。 NameSpaces 本文所有的例子程序都需要使用以下NameSpaces:<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Oledb" %> Connection 为了连接数据库,必须使用OleDbConnection:Dim objConn as New OleDBConnection
("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\users.mdb") 当然,你也可以将具体的连接方法作为变量使用,在连接数据库以后,必须打开数据库:objConn.Open() 这样,就可以使用数据库了,一般在最后,我们都要求关闭数据库连接:objConn.Close()
objConn=Nothing Command 连接数据库以后,就可以发送命令对数据库进行操作了,OleDbCommand允许发送命令对数据库进行操作。根据发送的SQL语句,我们可以对数据库进行几乎所有操作。Dim objCmd as New OleDbCommand("SELECT * From users", objConn) 以上语句建立Command,根据习惯不同,也可以使用以下方法:Dim objCmd as New OleDbCommand()
objCmd.Connection = objConn
objCmd.CommandText = "SELECT * FROM users" 还可以这样:Dim objCmd as New OleDbCommand(SQL String, connection string) 仔细观察上面的语句,我们发现在定义OleDbCommand时,可以同时使用数据库连接OleDbConnection和数据库连接语句。以上代码并没有执行SQL语句,现在我们来看到底怎样执行:
ExecuteNonQuery 当执行没有返回数据的操作的时候,我们可以使用以上方法,比如插入数据、更新数据等操作,具体这样执行:objCmd.ExecuteNoQuery ExecuteReader 在需要一个Data Reader的时候,我们可以使用以上方法,具体这样执行:Dim objRd as OleDbDataReader
objRd = objCmd.ExeuteReader ExecuteScalar 使用ExecuteScalar方法来取得一个单个地返回数据,比如对数据的统计。 Data Reader OleDbReader是专门用来读取数据的对象,这个对象除了读数据以外,不能做其他任何数据库操作。尽管比较简单,但是在用来浏览数据的时候效率是非常高的。Dim objReader as OleDbDataReader
objReader = objCmd.ExecuteReader
While objReader.Read
Response.Write(objReader.GetString(0) & "<br>")
End While 以上语句读取Command的返回结果的第一个字段,这个字段是字符型数据。我们可以使用其他方法取得各种类型的数据: GetBoolean(x) GetByte(x) GetBytes(x) GetChar(x) GetChars(x) GetDataTypeName(x) -取得数据类型 GetDateTime(x) GetDecimal(x) GetDefaultStream(x) GetDouble(x) GetFieldType(x) GetFloat(x) GetGuid(x) GetInt16(x) GetInt32(x) GetInt64(x) GetName(x) - 取得字段名 GetOrdinal(name) -根据字段名取得字段序号 GetString(x) GetTimeSpan(x) GetValue(x) GetValues(values()) 以上方法都是Command返回数据。 Data Adapter OleDbDataAdapter取得数据并且数据与DataSet之间建一座桥梁,可以这样使用:Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn) 实现方法有点类似于OleDbCommand。OleDbAdapter可以填充DataSet,也可以修改数据然后提交以实现对具体数据的修改:Dim ds as Dataset = New DataSet()
objAdapter.Fill(ds, "users") 以上语句实现将SQL语句取得的Users表的数据填充到DataSet。
Mappings Mappings可以实现对DataSet的列取别名:objAdapter.TableMappings.Add("adbtable", "users")
With objAdapter.TableMappings(0).ColumnMappings
.Add("PID", "ID")
.Add("LastName", "LName")
.Add("StreetAddress", "Addy")
End With
objAdapter.Fill(ds) 当使用了以上代码以后,就可以用ds.Tables("users")来代替ds.Tables("adbtable")了。 Command Builder 在下一章我们可以看到Command Builder的具体使用和强大功能。 练习: 如果你能理解以下代码,你就可以看下一章的内容了:<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Oledb" %>
<script language="VB" runat="server">
Sub Page_Load(sender as object, e as eventargs)Dim objConn as New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\sff\site\db\users.mdb")
objConn.Open()Dim ds as Dataset = New DataSet()
Dim objAdapter as New OleDbDataAdapter("SELECT * FROM users", objConn)
Dim objCmdBld As New OleDbCommandBuilder(objAdapter)objAdapter.Fill(ds, "users")End Sub
</script>
http://www.ouryh.net/file1/show.asp?id=482