c#数据库操作[参考].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在C#中进行数据库操作是软件开发中的常见任务,尤其是对于使用Microsoft SQL Server的情况。以下是一些关于如何在C#中执行SQL语句、管理事务和处理存储过程的基础知识: 为了与数据库建立连接,我们需要一个数据连接字符串。在这个例子中,连接字符串通过`ConfigurationManager.ConnectionStrings`获取,这是一个用于读取应用程序配置文件中连接字符串的类。连接字符串通常包含服务器名称、数据库名称、用户名和密码等信息。 ```csharp protected static string ConnectionStr = ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString; ``` 执行SQL语句通常是通过`SqlConnection`和`SqlCommand`类完成的。下面的`ExecuteSQL`方法展示了如何执行一个不返回结果集的SQL语句(例如INSERT, UPDATE, DELETE语句),并返回受影响的记录数: ```csharp public static int ExecuteSQL(string SQLString) { // 创建数据库连接和命令对象 SqlConnection Conn = new SqlConnection(ConnectionStr); SqlCommand Cmd = new SqlCommand(SQLString, Conn); try { // 打开数据库连接 Conn.Open(); // 执行SQL命令并获取受影响的行数 int rows = Cmd.ExecuteNonQuery(); return rows; } catch (SqlException E) { // 抛出异常信息 throw new Exception(E.Message); } finally { // 关闭连接 Conn.Close(); } } ``` 在处理涉及多个操作的事务时,可以使用`SqlTransaction`来确保原子性。下面的`ExecuteSqlTran`方法演示了如何在数据库事务中执行两条SQL语句: ```csharp public static void ExecuteSqlTran(string SQLString1, string SQLString2) { // 创建连接和命令对象 SqlConnection Conn = new SqlConnection(ConnectionStr); SqlCommand Cmd = new SqlCommand(); // 开始事务 SqlTransaction tx = Conn.BeginTransaction(); try { // 设置命令文本并执行第一条SQL Cmd.Connection = Conn; Cmd.Transaction = tx; Cmd.CommandText = SQLString1; Cmd.ExecuteNonQuery(); // 设置命令文本并执行第二条SQL Cmd.CommandText = SQLString2; Cmd.ExecuteNonQuery(); // 提交事务 tx.Commit(); } catch (SqlException E) { // 如果发生错误,回滚事务 tx.Rollback(); throw new Exception(E.Message); } finally { // 清理资源 Cmd.Dispose(); Conn.Close(); } } ``` 另一个方法`ExecuteSqlTran`允许一次性执行多条用分号分隔的SQL语句,并在同一个事务中: ```csharp public static void ExecuteSqlTran(string SQLStringList) { // 创建连接和命令对象 SqlConnection Conn = new SqlConnection(ConnectionStr); Conn.Open(); SqlCommand Cmd = new SqlCommand(); SqlTransaction tx = Conn.BeginTransaction(); try { // 将SQL语句数组分割 string[] split = SQLStringList.Split(new Char[] { ';' }); // 遍历并执行每条SQL语句 foreach (string strsql in split) { if (strsql.Trim() != "") { Cmd.CommandText = strsql; Cmd.ExecuteNonQuery(); } } // 提交事务 tx.Commit(); } catch (SqlException E) { // 发生错误时回滚事务 tx.Rollback(); throw new Exception(E.Message); } finally { // 清理资源 Cmd.Dispose(); Conn.Close(); } } ``` 如果需要执行带有参数的存储过程,我们可以创建一个`SqlCommand`,设置其`CommandType`为`StoredProcedure`,然后添加参数。以下是一个示例: ```csharp public static int ExecuteSQLWithParam(string SQLString, string ParamName, object Value) { SqlConnection Conn = new SqlConnection(ConnectionStr); SqlCommand Cmd = new SqlCommand(SQLString, Conn); Cmd.CommandType = CommandType.StoredProcedure; // 添加参数 Cmd.Parameters.Add(new SqlParameter(ParamName, Value)); try { Conn.Open(); int rows = Cmd.ExecuteNonQuery(); return rows; } catch (SqlException E) { throw new Exception(E.Message); } finally { Conn.Close(); } } ``` 以上代码片段提供了在C#中进行基本的数据库操作的方法,包括连接数据库、执行SQL语句、事务管理和调用存储过程。在实际开发中,还需要考虑异常处理、连接池的使用、性能优化和安全性等方面。
- 粉丝: 7
- 资源: 14万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LinkageError(解决方案).md
- AsyncError解决办法.md
- UnicodeTranslateError.md
- NSNetServiceError如何解决.md
- InvalidVNodeError解决办法.md
- UnsatisfiedLinkError(解决方案).md
- NSFileSystemError如何解决.md
- EnvironmentError.md
- ZeroDivisionError.md
- ReactivityError解决办法.md
- NSOperationQueueError如何解决.md
- EventEmitError解决办法.md
- NSHTTPError如何解决.md
- IncompatibleClassChangeError(解决方案).md
- EventListenerError解决办法.md
- IOError.md