ADO.NET被管理的提供者能够在这些OLE DB 提供者下工作。 MSDAORA JOLT MSDASQL/SQLServer ODBC MSDASQL/Jet ODBC 为了使用.NET框架中的被管理提供者,需要把下面的名空间(namespaces)包括到.aspx页面中。 SQL被管理的提供者: ADO被管理的提供者: Connections ADOConnection [C#] Commands可以被明确的界定,或者调用数据库中的存储过程。接下来的小段代码证明了在建立连接之后如何去发出一个Select命令。 SQLCommand [C#] DataReaders SQLDataReader [C#] ADODataReader [C#] 接下来这步是一个使用DataReader的简单格式 [C#] 下面的例子展示了迄今为止我们所讨论的内容:建立一个到SQL数据源的连接,对于连接的发送select命令,用DataReader对象来保存返回的结果,然后通过循环DataReader取得数据。 protected void Page_Load(Object Src, EventArgs E ) { html=”<Table>”; while (myReader.Read()) { 注意,真正的捕获块已经包括在”try … catch”语句中了。这提供了一些处理连接时出现异常的方法。在“finally”块中的代码总是会被执行,不管是否已经执行的是“try”或“catch”块,所以它变成关闭reader和conncetion对象的逻辑位置。
驱动程序 Driver
提供者 Provider
SQLOLEDB
SQL OLE DB Provider
Oracle OLE DB Provider
Jet OLE DB Provider
SQL Server ODBC Driver via OLE DB for ODBC Provider
Jet ODBC Driver via OLE DB Provider for ODBC Provider
现在ADO.NET还不支持 MSDASQL/Oracle ODBC Driver(ORACLE OLE DB DRIVER FOR ODBC)
ADO.NET的核心组件:
Connections–连接和管理数据库事务。
Commands–向数据库发送的命令。
DataReaders–直接读取流数据。
DateSets 和 DateSetCommands–对驻留内存中的数据进行存储和操作.
核心的ADO.NET功能基本上可以被概括为如下内容:
Connection对象在Web页面和数据库间建立连接。Commands对象向数据库提供者发出命令,返回的结果以一种流的方式贯穿于这些连接中。结果集可以用DataReaders快速的读取,也可以储存到驻留内存的DateSets对象中,然后通过DateSetCommands对象让用户在数据集中访问和操作记录。开发者可以用过DateSet内置的方法在基础的数据源上去处理数据集。
<%@ Import Namespace=”System.Data.SQL” %>
<%@ Import Namespace=”System.Data.ADO” %>
微软在.NET框架中提供了两个Connection对象以建立连接到特定的数据库:SQLConnection和 ADOConnection。Connection对象能在已经创建的连接上通过调用open的方法来被明确的打开连接。下面的代码片断演示了用任一提供者创建和打开连接。
SQLConnection
[C#]
String connectionString = “server=localhost; uid=sa; pwd=; database=northwind”;
SQLConnection myConn = new SQLConnection(connectionString);
myConn.Open();
String connectionString = “Provider=SQLOLEDB.1; Data Source=localhost; uid=sa; pwd=; Initial Catalog=Northwind;”
ADOConnection myConn = new ADOConnection(connectionString);
myConn.Open();
Commands
在建立了连接以后,下一步要做的就是对数据库运行的SQL语句。最简单直接的方法是通过ADO和SQL命令对象来实现。
Command对象可以给予提供者一些该如何操作数据库信息的指令。
一个命令(Command)可以用典型的SQL语句来表达,包括执行选择查询(select query)来返回记录集,执行行动查询(action query)来 更新(增加、编辑或删除)数据库的记录,或者创建并修改数据库的表结构。当然命令(Command)也可以传递参数并返回值。
String SQLStmt = ” SELECT * FROM Customers”;
SQLCommand myCommand = new SQLCommand(SQLStmt, myConn);
ADOCommand
[C#]
String SQLStmt = ” SELECT * FROM Customers”;
ADOCommand myCommand = new ADOCommand(SQLStmt, myConn);
当你处理大量数据的时候,大量内存的占用会导致性能上的问题。例如,一个连接(connection)用传统的ADO Recordset对象去读1000行数据库的记录,就必须为这1000行记录将内存分配给这个连接直至这个连接的生命周期结束。如果有1000用户在同一时间对同一计算机进行同样的操作,内存被过度的使用就会成为关键性的问题。
为了解决这些问题,.NET框架包括了DataReaders对象,而这个对象仅仅从数据库返回一个只读的,仅向前数据流。而且当前内存中每次仅存在一条记录。
DataReader接口支持各种数据源,比如关系数据和分级数据。DataReader可以适用于在运行完一条命令仅需要返回一个简单的只读记录集。
下面的代码片断阐述了怎么样声明变量指向一个DataReader对象的实例,还包括代码执行时Command对象产生的结果。当调用Command对象执行方法时,Command对象必须已经被创建和作为参数来传递。继续上面的例子:
SQLDataReader myReader = null;
myCommand.Execute(out myReader);
ADODataReader myReader = null;
myCommand.Execute(out myReader);
While (myReader.Read()) {
[C#]
While (myReader.Read()) {
// do your thing with the current row here
}
下面是用C#写的完整代码。
<%@ Import Namespace=”System.Data” %>
<%@ Import Namespace=”System.Data.SQL” %>
<html>
<head>
<script language=”C#” runat=”server”>
public SQLDataReader myReader;
public String html;
SQLConnection mySQLConnection = new SQLConnection(“server=localhost;uid=sa;pwd=;database=northwind”);
SQLCommand mySQLCommand = new SQLCommand(“select * from customers”, mySQLConnection);
try {
mySQLConnection.Open();
mySQLCommd.Execute(out myReader);
.Execute(out myReader);
html+=”<TR>”;
html+=”<TD><B>Customer ID</B> </TD>”;
html+=”<TD><B>Company Name</B></TD>”;
html+=”</TR>”;
html+=”<TR>”;
html+=”<TD + myReader[“CustomerID”].ToString() + “</TD>”;
+ myReader[“CustomerID”].ToString() + “</TD>”;
html+=”<TD>” + myReader[“CompanyName”].ToString() + “</TD>”;
html+=”</TR>”;
}
html+=”</Table>”;
}
catch(Exception e) {
html=e.ToString();
}
finally {
meader.Close();
ader.Close();
mySQLConnection.Close();
}
Response.Write(html);
}
</script>
</head>
</html>
ado.net起步_ado.net应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ado.net起步_ado.net应用
相关推荐
-      鲁大师驱动备份位置在哪里
-      新版360安全卫士怎么样
-      360安全卫士和鲁大师哪个好
-      360安全卫士离线救灾版怎么用
-      电脑怎么进入安全模式
-      360安全卫士把文件删了怎么恢复
-      用U盘去除系统登录密码
-      360安全卫士怎么升级快