csharp,using System.Data.SqlClient;,public class DatabaseConnection,{, private string connectionString = "Your_Connection_String";, public SqlConnection GetConnection(), {, return new SqlConnection(connectionString);, },},
“
在C#中,创建一个用于管理数据库连接的类可以帮助我们简化和集中化数据库操作,以下是一个示例代码,展示了如何创建一个通用的数据库连接类,该类可以用于连接不同类型的数据库(例如SQL Server、MySQL等)。
你需要确保安装了必要的NuGet包,对于SQL Server,你可以使用System.Data.SqlClient
;对于MySQL,你可以使用MySql.Data
。
Install-Package System.Data.SqlClient Install-Package MySql.Data
下面是一个示例代码,展示了如何创建一个通用的数据库连接类:
using System; using System.Data; using System.Data.Common; using System.Configuration; public class DatabaseConnection { private string connectionString; private DbProviderFactory factory; private DbConnection connection; public DatabaseConnection(string providerName, string connectionString) { this.connectionString = connectionString; this.factory = DbProviderFactories.GetFactory(providerName); this.connection = factory.CreateConnection(); } public void Open() { if (connection.State != ConnectionState.Open) { connection.ConnectionString = connectionString; connection.Open(); Console.WriteLine("Database connection opened successfully."); } else { Console.WriteLine("Database connection is already open."); } } public void Close() { if (connection.State == ConnectionState.Open) { connection.Close(); Console.WriteLine("Database connection closed successfully."); } else { Console.WriteLine("Database connection is not open."); } } public DataTable ExecuteQuery(string query) { DataTable dataTable = new DataTable(); using (DbCommand command = factory.CreateCommand()) { command.Connection = connection; command.CommandText = query; using (DbDataAdapter adapter = factory.CreateDataAdapter()) { adapter.SelectCommand = command; adapter.Fill(dataTable); } } return dataTable; } public int ExecuteNonQuery(string query) { int rowsAffected = 0; using (DbCommand command = factory.CreateCommand()) { command.Connection = connection; command.CommandText = query; rowsAffected = command.ExecuteNonQuery(); } return rowsAffected; } }
以下是如何使用上述DatabaseConnection
类的示例:
class Program { static void Main(string[] args) { string providerName = "System.Data.SqlClient"; // 或者 "MySql.Data.MySqlClient" 用于MySQL string connectionString = "your_connection_string_here"; DatabaseConnection dbConn = new DatabaseConnection(providerName, connectionString); dbConn.Open(); // 执行查询并获取结果 DataTable table = dbConn.ExecuteQuery("SELECT FROM YourTable"); foreach (DataRow row in table.Rows) { Console.WriteLine(row["YourColumn"].ToString()); } // 执行非查询命令(如插入、更新、删除) int rowsAffected = dbConn.ExecuteNonQuery("INSERT INTO YourTable (YourColumn) VALUES ('YourValue')"); Console.WriteLine($"Rows affected: {rowsAffected}"); dbConn.Close(); } }
Q1: 如何配置连接字符串?
A1: 连接字符串通常包含服务器地址、数据库名称、用户名和密码等信息,以下是SQL Server和MySQL的示例连接字符串:
SQL Server:Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
MySQL:Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Q2: 如何处理数据库连接异常?
A2: 你可以使用try-catch块来捕获和处理数据库连接异常。
try { dbConn.Open(); } catch (Exception ex) { Console.WriteLine($"Database connection error: {ex.Message}"); }