在C#.NET中连接数据库通常使用ADO.NET,这是Microsoft提供的一个用于访问数据库的框架,以下是详细的步骤和示例代码:
需要在代码文件顶部引入必要的命名空间:
using System; using System.Data.SqlClient;
连接字符串包含了连接到目标数据库所需的详细信息,如服务器地址、数据库名称、用户名和密码等。
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
3. 创建SqlConnection对象并打开连接
使用SqlConnection
类创建一个连接对象,并调用其Open
方法来建立与数据库的连接:
using (SqlConnection connection = new SqlConnection(connectionString)) { try { connection.Open(); Console.WriteLine("数据库连接成功!"); } catch (Exception ex) { Console.WriteLine("无法连接到数据库: " + ex.Message); } }
可以使用SqlCommand
类来执行SQL语句,这里以查询为例:
string query = "SELECT * FROM Employees"; using (SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"{reader["Id"]}, {reader["Name"]}"); } } }
对于数据的增删改操作,可以同样使用SqlCommand
,但需要设置合适的命令类型:
string insertQuery = "INSERT INTO Employees (Name, Age) VALUES (@Name, @Age)"; using (SqlCommand command = new SqlCommand(insertQuery, connection)) { command.Parameters.AddWithValue("@Name", "John Doe"); command.Parameters.AddWithValue("@Age", 30); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"{rowsAffected}行受影响"); }
如果需要进行多个相关操作并确保它们要么全部成功要么全部失败,则可以使用事务:
using (SqlTransaction transaction = connection.BeginTransaction()) { try { // 执行多个SQL命令... transaction.Commit(); // 提交事务 } catch (Exception ex) { transaction.Rollback(); // 回滚事务 Console.WriteLine("事务失败: " + ex.Message); } }
使用using
语句可以自动管理资源释放,无论是正常完成还是异常退出都会关闭连接。
FAQs
Q1: 如何更改数据库连接字符串中的参数?
A1: 你可以在创建SqlConnection
实例时直接修改传递给构造函数的字符串值,如果你要更改服务器地址,只需更新Server
参数即可。
Q2: 如果遇到“未找到或无法加载主程序集”错误怎么办?
A2: 这个错误通常是由于缺少对System.Data.dll的引用导致的,请检查项目引用中是否包含了System.Data,如果没有,请通过NuGet包管理器添加它。
小编有话说:在C#.NET中进行数据库操作时,请始终注意安全性问题,比如防止SQL注入攻击,合理利用try-catch块来捕获并处理可能出现的异常是非常重要的,希望以上内容对你有所帮助!