C和ADO NET数据库应用程序开发实用.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C和ADO NET数据库应用程序开发实用.pptx》由会员分享,可在线阅读,更多相关《C和ADO NET数据库应用程序开发实用.pptx(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、10.1 数据库的连接数据库的连接图10-1 访问SQL Server 7.0或更高版本的不同技术之间的区别第1页/共110页10.1.1 SqlConnection的使用的使用ConnectionString类似于OLEDB连接字符串,但并不相同。可以使用ConnectionString属性连接到数据库。下面是一个典型的连接字符串:PersistSecurityInfo=False;IntegratedSecurity=SSPI;database=northwind;server=mySQLServer第2页/共110页连接字符串的基本格式包括一系列由分号分隔的关键字/值对。使用等号(=)连
2、接各个关键字及其值。下面列出了ConnectionString中的关键字值的有效名称及其含义。(1)ApplicationName:应用程序的名称,如果不提供应用程序名称,默认是:“.NETSqlClientDataProvider”。(2)Database:指定数据库的名称。第3页/共110页(3)ConnectTimeout或ConnectionTimeout:在终止尝试连接并产生错误之前,等待与服务器建立连接的时间长度(以s为单位)。(4)DataSource/Server/Address/Addr/NetworkAddress:要连接的SQLServer实例的名称或网络地址。第4页/共
3、110页(5)Encrypt:默认值为false,当该值为true时,如果服务器端安装了证书,则SQLServer将对所有在客户端和服务器之间传送的数据使用SSL加密。可识别的值为true、false、yes和no。(6)InitialCatalog:数据库的名称。(7)IntegratedSecurity或Trusted_Connection:默认值为false,当为false时,将在连接中指定用户ID和密码。当为true时,将使用当前的Windows账户凭据进行身份验证。第5页/共110页可识别的值为true、false、yes、no及与true等效的SSPI(强烈推荐)。(8)Netwo
4、rkLibrary或Net:默认值为dbmssocn,用于建立与SQLServer实例连接的网络库。支持的值包括dbnmpntw(命名管道)、dbmsrpcn(多协议)、dbmsadsn(AppleTalk)、dbmsgnet(VIA)、dbmslpcn(共享内存)及dbmsspxn(IPX/SPX)和dbmssocn(TCP/IP)。第6页/共110页(9)PacketSize:默认值是8192,用来与SQLServer的实例进行通信的网络数据包的大小,以字节为单位。(10)Password或Pwd:SQLServer账户登录的密码(建议不要使用,为了维护最高级别的安全性,强烈建议改用Int
5、egratedSecurity或Trusted_Connection 关键字)。第7页/共110页(11)PersistSecurityInfo:默认值为false,当该值设置为false或no(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为true、false、yes和no。(12)UserID:SQLServer登录账户(建议不要使用。为了维护最高级别的安全性,强烈建议改用IntegratedSecurity或Trusted_Connection关键字)。第8页/共1
6、10页(13)WorkstationID:本地计算机名称连接到SQLServer的工作站的名称。下面的代码是创建一个SqlConnection并设置它的一些属性:第9页/共110页10.1.2 OleDbConnection的使用的使用一个OleDbConnection对象表示到数据源的一个唯一的连接,在客户端/服务器数据库系统架构下,它等效于到服务器的一个网络连接。OleDbConnection对象的某些方法或属性可能不可用,这取决于本机OLEDB提供程序所支持的功能。下面的例子是创建一个OleDbCommand和一个OleDbConnection。将OleDbConnection打开并设置
7、为OleDbCommand的Connection,然后调用ExecuteNonQuery并关闭该连接。第10页/共110页publicvoidInsertRow(stringmyConnectionString)/Iftheconnectionstringisnull,useadefault.if(myConnectionString=)myConnectionString=Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=Northwind;+IntegratedSecurity=SSPI;OleDbConnectionmyConne
8、ction=newOleDbConnection(myConnectionString);stringmyInsertQuery=INSERTINTOCustomers(CustomerID,CompanyName)Values(NWIND,NorthwindTraders);第11页/共110页10.1.3 OdbcConnection的使用的使用OdbcConnection对象表示到数据源的唯一连接,该数据源是通过使用连接字符串或ODBC数据源名称(DataSourseName,DSN)创建的。在客户端/服务器数据库系统架构下,它等效于到服务器的一个网络连接。OdbcConnection对
9、象的某些方法或属性可能不能使用,具体情况视本机ODBC驱动程序支持的功能而定。第12页/共110页下面的例子是创建一个OdbcCommand和一个OdbcConnection。将OdbcConnection打开并设置为OdbcCommand.Connection属性,然后调用ExecuteNonQuery并关闭该连接。第13页/共110页publicvoidInsertRow(stringmyConnection)/Iftheconnectionstringisnull,useadefaultif(myConnection=)myConnection=DRIVER=SQLServer;Serv
10、er=MyServer;Trusted_connection=yes;DATABASE=northwind;OdbcConnectionmyConn=newOdbcConnection(myConnection);第14页/共110页stringmyInsertQuery=INSERTINTOCustomers(CustomerID,CompanyName)VALUES(NWIND,NorthwindTraders);OdbcCommandmyOdbcCommand=newOdbcCommand(myInsertQuery);myOdbcCommand.Connection=myConn;my
11、Conn.Open();myOdbcCommand.ExecuteNonQuery();myOdbcCommand.Connection.Close();第15页/共110页OleDbCommandmyCommand=newOleDbCommand(myInsertQuery);myCommand.Connection=myConnection;myConnection.Open();myCommand.ExecuteNonQuery();myCommand.Connection.Close();第16页/共110页publicvoidCreateSqlConnection()SqlConne
12、ctionmyConnection=newSqlConnection();myConnection.ConnectionString=PersistSecurityInfo=False;IntegratedSecurity=SSPI;database=northwind;server=mySQLServer;ConnectTimeout=30;myConnection.Open();第17页/共110页10.1.4 OracleConnection的使用的使用Microsoft.NETFrameworkDataProviderforOracle(以下简称为.NETforOracle)是一个.N
13、ETFramework的组件。这个组件为用户使用.NET访问Oracle数据库提供了极大的方便。1系统需求和安装在安装.NETforOracle之前,必须首先安装.NETFrameworkversion1.0。同时,还要确定安装了数据访问组件(MDAC2.6及其以上版本,推荐版本是2.7)。第18页/共110页是要访问Oracle数据库的数据,那么还需要安装Oracle8iRelease3(8.1.7)Client及其以上版本。组件的安装非常方便,直接运行oracle_net.msi。在安装过程中无需任何设置,连续单击NEXT按钮即可完成安装。默认安装将在C:ProgramFilesMicro
14、soft.NET目录下建立一个名为OracleClient.Net的文件夹。第19页/共110页对于开发人员,其中至关重要的是System.Data.OracleClient.dll文件,这是.NETforOracle组件的核心文件。开发人员可以通过安装oracle_net.msi来使用.NETforOracle组件,这时系统会将此组件作为一个系统默认的组件来使用,就好像是人们所熟悉的System.Data.SqlClient和System.Data.OleDb组件一样。第20页/共110页2操作实例.NETforOracle组件中用于组织类和其他类型的命名空间是System.Data.Ora
15、cleClient。在此命名空间中,主要包含4个核心类,它们分别是:OracleConnection、OracleCommand、OracleDataReader、OracleDataAdapter。这些内容非常简单,其具体使用方法几乎和SqlConnection、SqlCommand、SqlDataReaderSqlDataAdapter是完全相同的。第21页/共110页下面是一个使用.NETforOracle组件操纵Oracle数据库的例子。建立一个名为OracleTypesTable的表:CREATETABLEOracleTypesTable(MyVarchar2VARCHAR(3000
16、),MyNumberNUMBER(28,4),PRIMARYKEY,MyDateDATE,MyRawRAW(255);插入一行数据:INSERTINTOOracleTypesTableVALUES(test,4,to_date(2000-01-1112:54:01,yyyy-mm-ddhh24:mi:ss),0001020304);第22页/共110页下面的程序是要通过.NETforOracle组件来访问Oracle数据库,并显示出这行数据。usingSystem;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControl
17、s;usingSystem.Web.UI.WebControls;usingSystem.Data;usingSystem.Data.OracleClient;第23页/共110页publicclasspic2:PagepublicLabelmessage;publicvoidPage_Load(Objectsender,EventArgse)/设置连接字符串stringconnstring=DataSource=eims;user=zbmis;password=zbmis;/实例化OracleConnection对象第24页/共110页OracleConnectionconn=newOrac
18、leConnection(connstring);tryconn.Open();/实例化OracleCommand对象OracleCommandcmd=conn.CreateCommand();cmd.CommandText=SELECT*FROMzbmis.OracleTypesTable;第25页/共110页OracleDataReaderoracledatareader1=cmd.ExecuteReader();/读取数据while(oracledatareader1.Read()/读取并显示第一行第一列的数据OracleStringoraclestring1=oracledatarea
19、der1.GetOracleString(0);Response.Write(OracleString+oraclestring1.ToString();/读取并显示第一行第二列的数据OracleNumberoraclenumber1=oracledatareader1.GetOracleNumber(1);第26页/共110页Response.Write(OracleNumber+oraclenumber1.ToString();/读取并显示第一行第三列的数据OracleDateTimeoracledatetime1=oracledatareader1.GetOracleDateTime(2
20、);Response.Write(OracleDateTime+oracledatetime1.ToString();/读取并显示第一行第四列的数据OracleBinaryoraclebinary1=oracledatareader1.GetOracleBinary(3);第27页/共110页if(oraclebinary1.IsNull=false)foreach(bytebinoraclebinary1.Value)Response.Write(byte+b.ToString();/释放资源第28页/共110页oracledatareader1.Close();catch(Exceptio
21、nee)/异常处理message.Text=ee.Message;finally/关闭连接conn.Close();第29页/共110页10.2 数据的获取数据的获取第30页/共110页10.2.1 创建创建Command对象对象Command对象是对数据存储执行命令的对象。虽然Connection对象也有这个功能,但是Connection对象在处理命令的功能上受到一定的限制,而Command对象是特别为处理命令的各方面问题而创建的。实际上,当从Connection对象中运行一条命令时,已经隐含地创建一个Command对象。第31页/共110页10.2.2 执行命令执行命令建立了数据源的连接和
22、设置了命令之后,Command对象可采用以下3种方法执行SQL命令:ExecuteNonQuery、ExecuteReader和ExecuteScalar。(1)ExecuteNonQuery执行命令,但不返回任何结果。(2)ExecuteReader执行命令,返回一个类型化dataReader。(3)ExecuteScalar执行命令,返回一个值。第32页/共110页SqlCommand类也提供了下面两个方法。(1)ExecuteResultset为将来使用而保留。(2)ExecuteXmlReader执行命令,返回一个XmlReader。第33页/共110页具体说明如下。(1)用Execu
23、teNonQuery方法执行命令不会返回结果集,只会返回语句影响的记录行数,它适合执行插入、更新、删除之类不返回结果集的命令。如果是SELECT语句,那么返回的结果是-1,如果发生回滚,这个结果也是-1。例如:第34页/共110页usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;publicclassmyDataAccesspublicstaticvoidMain()SqlConnectionconn=newSqlConnection(Server=localhost;Database=Northwind;UserID=sa;PWD
24、=sa);SqlCommandcmd=newSqlCommand(UPDATEOrdersSET第35页/共110页OrderDate=2004-9-1WHEREOrderID=10248,conn);tryconn.Open();intI=cmd.ExecuteNonQuery();Console.WriteLine(i.ToString()+rowsaffectedbyUPDATE);cmd.CommandText=SELECT*FROMOrders;i=cmd.ExecuteNonQuery();Console.WriteLine(i.ToString()+rowsaffectedbyS
25、ELECT);catch(Exceptionex)Console.WriteLine(ex.Message);finallyconn.Close();第36页/共110页(2)使用ExecuteReader方法执行命令可以返回一个类型化的DataReader实例或者IDataReader接口的结果集。例如:usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;第37页/共110页publicclassmyDataAccesspublicstaticvoidMain()SqlConnectionconn=newSqlConnection(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C和ADO NET数据库应用程序开发实用 ADO NET 数据库 应用程序 开发 实用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内