C操作SQLServer数据库.ppt_第1页
C操作SQLServer数据库.ppt_第2页
C操作SQLServer数据库.ppt_第3页
C操作SQLServer数据库.ppt_第4页
C操作SQLServer数据库.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#语言操作SQLServer数据库,在c#程序开发中经常需要和SQLServer数据库打交道,下面我们就了解一下c#操作SQLServer数据库的方法:1.概述首先是为我们的程序添加必要的引用以及一些数据成员。因为我们的程序涉及到数据库的访问操作,所以必须要运用到数据提供者(DataProvider)的对象。在.Net框架下,我们主要运用的数据提供者分为两类,一类是Sql类型的,另一类是OleDb类型的。它们涉及到的命名空间分别为System.Data.SqlClient和System.Data.OleDb。,因为我们的程序访问的是SQLServer数据库,所以我们运用的数据提供者对象应为Sql类型的。原因很简单,该类型的对象是专门为SQLServer数据库而设计的,所以性能得到了大大的优化。所以,在我们的程序的开始处添加如下一句语句:usingSystem.Data.SqlClient;,C#操作SQLServer数据库的步骤,引入命名空间usingSystem.Data.SqlClient;定义连接串定义SqlConnection对象,并使用Open()方法打开对数据库的连接。定义SqlCommand对象,并指定使用哪个连接对象连接到数据库。定义SqlCommand对象的命令类型定义SqlCommand对象使用何种SQL命令使用SQLCommand对象的方法获得数据库中的数据并放入结果集中。使用SqlDataReader对象的方法将结果集中的数据读取出来加以操作。关闭数据库连接,即调用SqlConnectionfangfadeClose()方法。,1.定义变量添加对System.Data.SqlClient命名空间的引用后,我们接下来为程序添加一些必要的数据成员,这些数据成员可以完成一些对数据库及其对象的操作。/连接字符串,包含了连接参数privatestringConnectionString=“DataSource=数据库服务器的名字;InitialCatalog=数据库的名字;IntegratedSecurity=SSPI;privatestringConnectionString=“DataSource=数据库服务器的名字;InitialCatalog=数据库的名字;PersistSecurityInfo=True;UserID=sa;Password=test”;,/数据库连接对象。实现和数据库的连接privateSqlConnectionconn=null;/数据库连接命令对象。指定执行的SQL语句privateSqlCommandcmd=null;/存放SQL语句的。privatestringsql=null;,一、SqlConnection类简介语法:publicsealedclassSqlConnection:DbConnection,ICloneable表示与SQLServer数据库的连接。此类不能被继承。命名空间:System.Data.SqlClient程序集:System.Data(在System.Data.dll中)两种构造函数:(1)publicSqlConnection()(2)publicSqlConnection(stringconnectionString),常用属性:1、获取当前连接的状态-State2、获取或设置用于打开SQLServer数据库的字符串。-ConnectionString3、获取要连接的SQLServer实例的名称。-DataSource4、获取当前数据库的名称或连接打开后要使用的数据库的名称。-DateBase5、获取等待连接打开的时间(以秒为单位)。-ConnectionTimeOut,常用方法1、打开与数据库的连接-OpenpublicoverridevoidOpen()2、关闭与数据库的连接-ClosepublicoverridevoidClose()此方法是关闭任何已打开连接的首选方法。应用程序可以多次调用Close。不会生成任何异常。3、创建并返回一个与SqlConnection关联的SqlCommand对象-CreateCommandpublicSqlCommandCreateCommand(),1、创建SqlCommand对象SqlCommandcmd=newSqlCommand(SQLCMD,CON);参数:SQLCMD为SQL命令语句,CON为打开的数据库连接(即打开的SqlConnection类对象)。注:创建SqlCommand类对象之前应打开SqlConnection连接。,2、执行命令command类提供的执行命令的方法有很多,下面只介绍最常用的三个方法。ExecuteNonQuery()执行命令但不返回任何结果集(唯一返回语句执行所影响的行数),如果调用有输出参数的存储过程则返回值。(一般用于InsertUpdataDelete等不需要返回结果集的SQL语句)ExecuteReader()执行命令,返回一个类型化的IDataReader(即返回SQL语句执行后生成的结果集)。一般用于Select等返回结果集的SQL语句。ExcuteScalar()执行命令返回一个值(执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。),例1,stringConString=Server=duanyfsqlexpress;+Datebase=FamilyInformationManagement;+IntegratedSecrety=SSPI;SqlConnectioncon=newSqlConnection(ConString);con.Open();SqlCommandCmd=newSqlCommand(DELETE*FROMUserWHEREUserID=123,con);Cmd.ExecuteNonQuery();con.Close();,3、常用的属性CommandText设置要对执行的SQL语句、表名或存储过程名。默认值为空字符串。(如果CommandType属性为StoredProcedure或TableDirect时,CommandText中表名或存储过程名如果包含特殊字符则用转义符语法设置)。CommandType设置如何解释CommandText值(即设置CommandText所代表的含义)。有三个选项(StoredProcedure存储过程名,TableDirect表名,TextSQL文本命令),默认为Text。,CommandTimeout获取或设置等待命令执行的时间(以秒为单位)。默认为30秒。(0表示无限制,会无限期地等待执行命令)。(当对上下文连接(要用连接字符串中的“contextconnection=true”打开的SqlConnection)执行命令时,CommandTimeout将不起作用)。Parameters设置SQL语句或存储过程的参数。(如果参数与赋的值不匹配则会报错)。,例2,(使用CommandText属性重写例1)stringConString=Server=duanyfsqlexpress;+Datebase=FamilyInformationManagement;+IntegratedSecrety=SSPI“;SqlConnectioncon=newSqlConnection(ConString);con.Open();SqlCommandCmd=newSqlCommand();Cmd.CommandText=DELETE*FROMUserWHEREUserID=123;Cmd.CommandType=CommandType.Text;/默认为Text,此行可以不用Cmd.CommandTimeout=15;Cmd.ExecuteNonQuery();con.Close();,例3,转义符语法设置重写例1(1)使用newSqlParameterintUserID=123;stringConString=Server=duanyfsqlexpress;+Datebase=FamilyInformationManagement;+IntegratedSecrety=SSPI;SqlConnectioncon=newSqlConnection(ConString);con.Open();SqlCommandCmd=newSqlCommand(DELETE*FROMUserWHEREUserName=UserName,Con);SqlParameterParm=newSqlParameter(UserID,SqlDbType.Int);Parm.Value=UserID;Cmd.Parameters.Add(SqlParm);Cmd.ExecuteNonQuery();con.Close();,(2)不使用newSqlParameterintUserID=123;stringConString=Server=duanyfsqlexpress;+Datebase=FamilyInformationManagement;+IntegratedSecrety=SSPI;SqlConnectioncon=newSqlConnection(ConString);con.Open();SqlCommandCmd=newSqlCommand(DELETE*FROMUserHEREUserName=UserName,Con);Cmd.Parameters.Add(UserID,SqlDbType.Int);Cmd.ParametersUserID.Value=UserID;Cmd.Parameters.Add(SqlParm);Cmd.ExecuteNonQuery();con.Close();,理解SqlCommand对象的ExecuteReader()和ExecuteNonQuery()方法ExecuteReader():将数据库中的数据读取到结果集中,返回结果类型为:SqlDataReader这个类的类型结果ExecuteNonQuery()返回sql命令执行时所影响的行数,返回结果类型为int,SqlDataReader类:用来保存有SqlCommand对象从数据库端读取到的数据集。结合实例理解SqlDataReader的Read()方法、GetValue()方法和GetOrdinal()方法完整例子代码如下:,stringStrUserName;stringStrPassword;stringStrEmployID;stringSQLCommand=select*fromTab_Account;stringStr_Connection=DataSource=FIREFOXSQLEXPRESS;InitialCatalog=mydatabase;IntegratedSecurity=True;SqlConnectionSql_Connection=newSqlConnection(Str_Connection);Sql_Connection.Open();SqlCommandSql_Command=newSqlCommand();Sql_Command.Connection=Sql_Connection;/Sql_Command=Sql_Connection.CreateCommand();Sql_Command.CommandType=System.Data.CommandType.Text;Sql_Command.CommandText=SQLCommand;SqlDataReaderreader=Sql_Command.ExecuteReader();,reader.Read();StrUserName=reader.GetValue(reader.GetOrdinal(Account).ToString();StrPassword=reader.GetValue(reader.GetOrdinal(Password).ToString();StrEmployID=reader.Ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论