自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lonnie

执著于SAP!那个曾经充满理想的孩子在变坏!

  • 博客(0)
  • 资源 (5)
  • 收藏
  • 关注

空空如也

GuiXT_FuzionSSO_Logon_Ticket.pdf

GuiXT_FuzionSSO_Logon_Ticket.pdf

2011-03-02

C#.NET 开发者手册

C#.NET 开发者手册C#.NET 开发者手册C#.NET 开发者手册

2010-07-03

XML语言指南CHM

XML基础 XML 主页 XML 简介 XML 如何使用 XML 语法 XML 元素 XML 属性 XML 确认 XML 浏览器 XML 检视 XML 使用CSS XML 使用XSL XML 数据岛 XML 解析器 XML 应用 XML 高级部分 XML 命名空间 XML CDATA XML 编码 XML 服务器 XML 应用 XML HTTP XML 行为 XML 技术 实例/测验 XML 例子 XML 测验 资源 XML 书籍

2010-05-28

程序员大本营.NET版-精华文章

ADO.NET快速起步 作者: 郜飞 小狮子 ADO.NET是微软的Microsoft ActiveX Data Objects (ADO)的下一代产品,是在微软的.NET中创建分布式和数据共享应用程序的应用程序开发接口(API)。 ADO.NET能被用在任何用户的应用程序,需要和OLE DB-compliant的数据源连接和通讯,例如Microsoft SQL Server。 同时ADO.NET又保持着与以前的ADO模型有关的一些主要概念,它已经被极大的完善,并从不同的信息来源提供途径去获得结构化的数据----一个平台文本文件,从数据库管理系统获得的相关数据,或者是分级的XML数据----然而,所有都按照一个相容的,标准化的设计模型来执行。 这篇文章意在简要的介绍ADO.NET的关键特性,重点讲述了在关系数据库管理系统(rdbms)中访问数据。 快速浏览 SQL Server 7.0(及更新版本)以及可以通过 OLE DB 提供者进行访问的任何数据源。这些又称为被管理的提供者(Managed Provider)。.NET框架的数据存取API提供了两种方式分别识别并处理两种类型的数据源:SQL Server 7.0(及更新版本)和可以通过 OLE DB 提供者进行访问的任何数据源。SQL(System.Data.SQL)库可以直接联结到SQL Server的数据,而ADO (System.Data.ADO)库可用于其他通过OLE DB 提供者进行访问的任何数据源。 SQL Server被管理的提供者在MS SQL Server 7.0或以后的版本中使用叫做“tabulardata stream”的专用协议,而没有使用OLE DB, ADO 或 ODBC。 ADO.NET被管理的提供者能够在这些OLE DB 提供者下工作。 驱动程序 Driver 提供者 Provider SQLOLEDB SQL OLE DB Provider MSDAORA Oracle OLE DB Provider JOLT Jet OLE DB Provider MSDASQL/SQLServer ODBC SQL Server ODBC Driver via OLE DB for ODBC Provider MSDASQL/Jet ODBC 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内置的方法在基础的数据源上去处理数据集。 为了使用.NET框架中的被管理提供者,需要把下面的名空间(namespaces)包括到.aspx页面中。 SQL被管理的提供者: <%@ Import Namespace="System.Data.SQL" %>   ADO被管理的提供者: <%@ Import Namespace="System.Data.ADO" %>   Connections 微软在.NET框架中提供了两个Connection对象以建立连接到特定的数据库:SQLConnection和 ADOConnection。Connection对象能在已经创建的连接上通过调用open的方法来被明确的打开连接。下面的代码片断演示了用任一提供者创建和打开连接。 SQLConnection [C#] String connectionString = "server=localhost; uid=sa; pwd=; database=northwind"; SQLConnection myConn = new SQLConnection(connectionString); myConn.Open(); [VB] Dim connectionString As String = _  m connectionString As String = _    "server=localhost; uid=sa; pwd=; database=northwind" Dim myConn As SQLConnection = New SQLConnection(connectionString) myConn.Open ADOConnection [C#] String connectionString = "Provider=SQLOLEDB.1; Data Source=localhost; uid=sa; pwd=; Initial Catalog=Northwind;" ADOConnection myConn = new ADOConnection(connectionString); myConn.Open(); [VB] Dim connectionString As String = _  ost; uid=sa; pwd=; Initial Catalog=Northwind;" ADOConnection myConn = new ADOConnection(connectionString); myConn.Open(); [VB] Dim connectionString As String = _    "Provider=SQLOLEDB.1; Data Source=localhost; " & _    "uid=sa; pwd=; Initial Catalog=Nohwind" Dim myConn As ADOConnection = New ADOConnection(connectionString) myConn.Open() Commands 在建立了连接以后,下一步要做的就是对数据库运行的SQL语句。最简单直接的方法是通过ADO和SQL命令对象来实现。 Command对象可以给予提供者一些该如何操作数据库信息的指令。 一个命令(Command)可以用典型的SQL语句来表达,包括执行选择查询(select query)来返回记录集,执行行动查询(action query)来 更新(增加、编辑或删除)数据库的记录,或者创建并修改数据库的表结构。当然命令(Command)也可以传递参数并返回值。 Commands可以被明确的界定,或者调用数据库中的存储过程。接下来的小段代码证明了在建立连接之后如何去发出一个Select命令。 SQLCommand [C#] String SQLStmt = " SELECT * FROM Customers"; SQLCommand myCommand = new SQLCommand(SQLStmt, myConn); [VB] Dim SQlStmt As String = "SELECT * FROM Customers" Dim myCommand As SQLCommand = New SQLCommand(SQLStmt, myConn) ADOCommand [C#] String SQLStmt = " SELECT * FROM Customers"; ADOCommand myCommand = new ADOCommand(SQLStmt, myConn); [VB] Dim SQlStmt As String = "SELECT * FROM Customers" Dim myCommand As ADOCommand = New ADOCommand(SQLStmt, myConn) DataReaders 当你处理大量数据的时候,大量内存的占用会导致性能上的问题。例如,一个连接(connection)用传统的ADO Recordset对象去读1000行数据库的记录,就必须为这1000行记录将内存分配给这个连接直至这个连接的生命周期结束。如果有1000用户在同一时间对同一计算机进行同样的操作,内存被过度的使用就会成为关键性的问题。 为了解决这些问题,.NET框架包括了DataReaders对象,而这个对象仅仅从数据库返回一个只读的,仅向前数据流。而且当前内存中每次仅存在一条记录。 DataReader接口支持各种数据源,比如关系数据和分级数据。DataReader可以适用于在运行完一条命令仅需要返回一个简单的只读记录集。 下面的代码片断阐述了怎么样声明变量指向一个DataReader对象的实例,还包括代码执行时Command对象产生的结果。当调用Command对象执行方法时,Command对象必须已经被创建和作为参数来传递。继续上面的例子: SQLDataReader [C#] SQLDataReader myReader = null; myCommand.Execute(out myReader); [VB] Dim myReader As SQLDataReader = Nothing myCommand.Execute(myReader) ADODataReader [C#] ADODataReader myReader = null; myCommand.Execute(out myReader); [VB] Dim myReader As ADODataReader = Nothing myCommand.Execute(myReader) 接下来这步是一个使用DataReader的简单格式 [C#] While (myReader.Read()) {  [C#] While (myReader.Read()) {    // do your thing with the current row here } [VB] While myReader.Read  ' do your thing with the current row here End While 下面的例子展示了迄今为止我们所讨论的内容:建立一个到SQL数据源的连接,对于连接的发送select命令,用DataReader对象来保存返回的结果,然后通过循环DataReader取得数据。 下面是用C#写的完整代码。 <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQL" %> <html> <head> <script language="C#" runat="server"> public SQLDataReader myReader; public String html; protected void Page_Load(Object Src, EventArgs E ) {    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="<Table>";       html+="<TR>";       html+="<TD><B>Customer ID</B>   </TD>";       html+="<TD><B>Company Name</B></TD>";       html+="</TR>";       while (myReader.Read()) {          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();    }    finall y {       meader.Close();  ader.Close();       mySQLConnection.Close();    }    Response.Write(html); } </script> </head> <body> </body> </htm 注意,真正的捕获块已经包括在"try ... catch"语句中了。这提供了一些处理连接时出现异常的方法。在“finally”块中的代码总是会被执行,不管是否已经执行的是“try”或“catch”块,所以它变成关闭reader和conncetion对象的逻辑位置。 同时也注意DataReader中字段的值是怎么被方便的访问和传递的。   总结:本文主要介绍了ADO.NET的基本特点,并且使用的一些代码展示了在ADO.NET中如何建立数据库连接,发送查询命令及使用DataReader对象快速浏览数据集方式。当然作为微软面向分布式应用和数据共享的新一代ADO产品,它正真的精华是DateSets对象。为此,本网站将在即将推出的《ADO.NET深入研究》中对DateSets对象进行深入的探讨。

2010-04-01

网站项目管理规范 电子书

 《网站项目管理规范指南》读做“网站-项目管理-规范-指南”,顾名思义就是针对网站项目管理,提供规范管理的建议和指导。

2010-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除