生成数据集对象需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章: 《C#实现 IDbConnection...数据库脚本程序的执行流程 首先需要创建连接对象,成功后下达符合对应数据库规范的命令指令,该指令可能包括需要的参数对象(需要定义名称和赋值等操作),通过 IDbCommand 命令接口对象执行,大体流程如下图...string ConnString="" 属性 IdbConnection对象的连接串,该属性仅到ConnKeyString为空时试图访问 3 public string DbServerType="..." 属性 目前支持 "oracle"、 "dm8",其它字符串均视为 MS SQL Server 4 public string ErrorMessage="" 属性 当执行脚本命令发生错误时捕捉到的错误信息...5 public int RowsCount=0 属性 当执行脚本命令成功后的影响行数,默认值为0 6 public int ErrorNum=0 属性 当执行脚本命令失败时,返回数据库提供的错误号
我们拿真实项目中遇到的问题来讲解吧,这样能更好的吸引注意力。 情景引入: 您是否遇到过这样一个头疼的问题,在我们开发信息系统的时候,经常需要切换不同的数据库。...我们需要一种机制,能在需要的时候自动变更后台数据源的连接对象;我们来收集问题,既然要自动变更后台数据源连接对象,那么我们在编码的过程中就不能直接使用一些诸如SqlConnection、SqlCommand...{ #region 属性 /// /// 获取或设置数据源连接字符串。...get { return _globalconnectionstring; } } /// /// 获取或设置本次执行的数据源的连接字符串.../// static OledbSource() { //设置全局(SQLServerSource实例)对象的默认连接字符串
Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下: (1)创建数据库连接。...当命令文本在指定具体命令时,必须指出哪一部分是在运行时进行设置的,也就是必须指出哪部分是参数。 那些可变的部分即参数,它们都必须有一个@前缀。...目前需要做的就是为命令中的每一个参数创建一个Parameter对象。 SqlCommand类提供了一个Parameters集合属性,用以为命令保存所有的参数。...为了ADO.NET应用程序中执行存储过程,需要把存储过程的名称赋给命令文本,同时将命令的CommandType属性设置为存储过程。...”, conn); 接下来要把命令的CommandType属性设置为StoredProcedure。
如果我们在连接字符串里面加上Enlist=false;,再执行上面的代码,发现插入了一条1的记录,说明并不是以事务方式执行的。...} } conn.Close(); } WebService(TransactionOption) 首先引用using System.EnterpriseServices;,然后设置属性...设置TransactionOption.Required、TransactionOption.RequiresNew表示创建一个新的事务。...意思是说当TransactionOption的属性为Required或 RequiresNew的WEB服务方法调用另一个TransactionOption的属性为Required或RequiresNew...的WEB服务方法时,每个WEB服务方法将参与他们自己的事务,因为Web Service方法只能用作事务中的根对象。
只要任意一个 SqlCommand 对象引发异常,程序流控制就会跳出 TransactionScope 的 using 语句块,随后,TransactionScope 将自行释放并回滚该事务。...属性支持关键字 Enlist,该关键字指示 System.Data.SqlClient 是否将检测事务上下文并自动在分布式事务中登记连接。...当部分代码需要留在事务外部时,可以使用该选项。...若要更改 TransactionScope 类的默认设置,您可以创建一个 TransactionOptions 对象,然后通过它在 TransactionScope 对象上设置隔离级别和事务的超时时间。...此 外,TransactionOptions 类还有一个 TimeOut 属性,这个属性可以用来更改超时时间(默认设置为 1 分钟)。
如果我们在连接字符串里面加上Enlist=false;,再执行上面的代码,发现插入了一条1的记录,说明并不是以事务方式执行的。...TransactionOption事务 首先引用using System.EnterpriseServices;,然后设置属性TransactionOption = TransactionOption.Required...设置TransactionOption.Required、TransactionOption.RequiresNew表示创建一个新的事务。...意思是说当TransactionOption的属性为Required或 RequiresNew的WEB服务方法调用另一个TransactionOption的属性为Required或RequiresNew...的WEB服务方法时,每个WEB服务方法将参与他们自己的事务,因为Web Service方法只能用作事务中的根对象。
Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下: (1)创建数据库连接。...=connectionString;8 9 //新建命令对象 10 11 SqlCommand cmd=newSqlCommand(updateQuery,conn);12 13 //调用命令对象的ExecuteNonQuery...当命令文本在指定具体命令时,必须指出哪一部分是在运行时进行设置的,也就是必须指出哪部分是参数。 那些可变的部分即参数,它们都必须有一个@前缀。...目前需要做的就是为命令中的每一个参数创建一个Parameter对象。 SqlCommand类提供了一个Parameters集合属性,用以为命令保存所有的参数。...”, conn); 接下来要把命令的CommandType属性设置为StoredProcedure。
存储过程是连接式访问数据库的一种延伸,主要是通过命令对象调用数据库系统中的存储过程来完成的。存储过程可以带参数,也可以不带参数,可以返回结果页可以没有返回结果。...C#程序设计及宿舍管理系统实战 重点: Ø 如何定义与使用存储过程以及存储过程的重要性 Ø 参数对象 Ø 调用有返回值的存储过程 预习功课: Ø SqlCommand...如何才能调用存储过程 Ø SqlParameter类及其使用规则 Ø 参数化对象的使用 Ø 如何才能调用有返回值的存储过程 3.1 参数化对象 参数对象...我们知道存储过程中存在输入输出参数,所以在介绍C#调用存储过程前,需要来看看系统为我们提供的参数参数对象到底有何用处以及如何使用。...,然后修改命令对象的类型属性CommandType为存储过程类型,并设置命令对象的CommandText为存储过程的名字,然后通过ExecuteNonQuery()方法执行存储过程即可: 核心代码: SqlConnection
第一个对象Connection 如何连接数据库,需要连接字符串 获取连接字符串的方式: VS视图-服务器资源管理器-数据库连接上点右键-添加连接 在新添的数据库上点右键 属性...第二个对象Command 如何执行sql语句,需要执行sql语句的对象 操作Sql Server数据库使用SqlCommand对象, SqlCommand表示向服务器提交的一个命令(SQL语句等...7.连接池的原理总结 1.第一次打开连接会创建一个连接对象。 2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中。...3.下一个连接对象,如果连接字符串与池中现有连接对象的连接字符串完全一致,则会使用池中的现有连接,而不会重新创建一个。...的关闭、异常与资源释放问题: 当使用using时可以不加try-catch,但是在返回SqlDataReader的方法中没有使用using,所以这时应该增加一个try-catch,防止发生异常后无法关闭连接对象
(); } } 首先,实例化连接对象,该对象的构造方法可以接收一个参数,这个参数就是数据库连接字符串,除了构造传参之外,我们也可以通过以下方式为其赋值。...connection.ConnectionString="ConnectionString"; 实例化连接对象以后,接着实例化执行对象,该对象的构造需要sql语句和连接对象,同样的,也可以用属性赋值的方式实现这一操作...command.ExecuteReader();//执行查,返回SqlDataReader对象,通过该对象可以遍历获取所有查询到的数据 command.ExecuteNonQuery();//执行增删改...它的read()方法是读取下一条数据,返回一个bool值,当读取到最后一行以后,返回false,通常的用法就是判断是否有值,如果有值就用while循环读取数据,读取数据使用reader[索引]的形式,或者使用...使用完毕后,要调用连接对象的Close()方法,关闭连接,并且最好再调用Dispose()方法释放掉连接。若使用using,则系统会自动释放。
(4,'王帅',19,'男',1)";//指定的是cmd的要执行的sql语句 cmd.Connection = conn;//命令对象与哪个连接对象关联;...= "delete student where stuid=1";//指定的是cmd的要执行的sql语句 cmd.Connection = conn;//命令对象与哪个连接对象关联...=1,stuName='王亚亚' where stuId=3";//指定的是cmd的要执行的sql语句 cmd.Connection = conn;//命令对象与哪个连接对象关联..."男" : "女"; //**************************SqlCommand的参数化设置,比较流行; //sql语句的变化...,由conn创建,就不用写连接属性了; SqlCommand cmd = conn.CreateCommand(); //查看总条数的命令语句
//再将SQL命令的属性Connection指向SQL连接 或 SqlCommand sqlCom = new SqlCommand(命令字符串,连接对象名); SqlCommand对象的三种常用的命令格式...: 1)sqlcom.ExecuteReader 返回一个reader对象 2)sqlcom.ExecuteNonQuery 返回一个整数,通常用在插入、删除、更新时受影响的行数 3)sqlcom.ExecuteScalar...返回检索的一个值,通常用于查询聚合函数 ExecuteNonQuery方法 对连接执行 Transact-SQL 语句并返回受影响的行数。...将SQL命令的属性Connection指向SQL连接; sqlCommand.CommandText =...//将SQL命令的属性Connection指向SQL连接; sqlCommand.CommandText =
用于执行增,删,改的方法,支持存储过程 1.ExecuteNonQuery 数据库连接字符串: private readonly static string connectionString =...()); } } 注:1、ExecuteNonQuery()执行命令对象的SQL语句,返回一个int 类型的变量,返回数据库操作之后影响的行数。...SqlDataReader 使用sqlDataReader时,链接必须是打开的;设置此参数后,关闭SqlDataReader时会自动关闭使用的连接(CommondBehavior.CloseConnection...设置此参数后,关闭SqlDataReader时会自动关闭使用的连接(CommondBehavior.CloseConnection) dr = cmd.ExecuteReader(CommandBehavior.CloseConnection...对象,如果在SqlCommand对象中调用, 则返回SqlDataReader,如果在OledbCommand对象中调用,返回的是OledbDataReader,可以调用DataReader的方法和属性迭代处理结果集
这5种事务机制有着各自的优势和劣势,分别表现在性能、代码数量和部署设置等方面。开发人员可以根据项目的实际情况选择相应的事务机制。 ...类的对象的Open()方法建立与数据库服务器的连接。...(2)然后将该连接赋给SqlCommand对象的Connection属性。 (3)将欲执行的SQL语句赋给SqlCommand的CommandText属性。...(4)通过SqlCommand对象进行数据库操作。 创建一个ADO.NET事务是很简单的,需要定义一个SqlTransaction类型的对象。...然后赋给SqlCommand对象的Transcation属性,即实现了二者的关联。为了使事务处理可以成功完成,必须调用SqlTransaction对象的Commit()方法。
); 3、对MSDTC组件设置: 步骤: 在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。 ...a.控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性 b.选择MSDTC页, 确认"使用本地协调器" c.点击下方"安全配置"按钮 d.勾选: "允许网络DTC访问","允许远程客户端...单数据库还比较好做,如果遇到同时操作多个数据库增删改,可以用下面的方法 一。...int i = command.ExecuteNonQuery(); } //更新pubs数据库的jobs表 ...另一种方法就是建立两个事务,两个连接了。代码如下; SqlConnection conNorthwind = new SqlConnection("server=.
Info"属性:是否保存安全信息,即数据库连接成功后是否保存密码信息(True或False) * --------密码验证登录-------- * "Uid"或"User Id"属性:连接数据库的验证用户名...* "Pwd"或"Password"属性:连接数据库的验证密码 * --------Windows登录-------- * "AttachDbFilename"属性:服务器的文件路径 * "Integrated...Security"属性:Windows登录(True或False,SSPI即为True) * --------获取连接字符串-------- * 如果要获取连接数据连接对象或字符串的话,先要修改Configuration...> /// 如果是SqlHelper打开连接,当连接关闭DataReader也将关闭. /// 如果是调用都打开连接,DataReader由调用都管理....(使用连接对象) /// /// 一个有效的数据库连接对象
大家好,又见面了,我是你们的朋友全栈君。 transaction属性: 1.原子性:事务是一个完整的操作,事务的各元素师不可分的。 2.一致性:事务开始时和完成时,数据必须处于一致的状态。...方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。...此示例演示如何使用BeginTransaction、Commit 和 Rollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。...SqlConnection(connectionString)) { connection.Open(); SqlCommand...如果连接终止或事务已在服务器上回滚,则Commit 和Rollback 都会生成InvalidOperationException 参考资料: SqlTransaction事务的用法 http:
大家好,又见面了,我是你们的朋友全栈君。 SqlTransaction类表示要在SQL Server数据库中处理的Transact-SQL事务。...无法继承此类 应用程序通过在SqlConnection 对象上调用BeginTransaction 来创建 SqlTransaction 对象。...对 SqlTransaction 对象执行与该事务关联的所有后续操作(例如提交或中止该事务)。 注意:在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理。...如果连接终止或事务已在服务器上回滚,则Commit 和Rollback 都会生成 InvalidOperationException 示例: 下面的示例创建一个 SqlConnection 和一个...此示例演示如何使用 BeginTransaction、Commit 和 Rollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。
如果连接终止或事务已在服务器上回滚,则 Commit 和 Rollback 都会生成 InvalidOperationException。...此示例还演示如何使用 BeginTransaction、Commit 和 Rollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。...transaction = conn.BeginTransaction(); try { SqlCommand... _cmd = new SqlCommand("Insert Into T_Test(F_Name) values(@Name)",conn); _cmd.Parameters.Add..."@Name", "Test1")); _cmd.Transaction = _transaction; _cmd.ExecuteNonQuery
创建Connection对象,连接数据库。创建Command对象,执行SQL命令。 创建DataAdapter对象,提供数据源与记录集之间的数据交换,数据库与内存中的数据交换。...创建DataSet对象,将从数据源中得到的数据保存在内存中,然后对数据进行相关的各种操作。 具体代码 数据库连接 调用Connection对象的open()方法进行指定的数据源连接。...= sql; int result = sqlCommand.ExecuteNonQuery(); 创建DataAdapter对象 SelectCommand,InsertCommand,UpdateCommand...,DeleteCommand这是DataAdapter对象的4个属性。...如果没有这个对象,SqlDataAdapter对象调用Update()方法会报一个异常:System.InvalidOperationException: 当传递具有已修改行的 DataRow 集合时,