用C#语言封装使用MySql数据库的类DBHelper,实现增删改查功能,其他类只需调用此类中的相应的增删改查的方法并传入SQL语句和不定参数就可以访问数据库
时间: 2024-05-07 07:22:42 浏览: 195
好的,下面是C#语言中封装使用MySql数据库的类DBHelper的代码实现:
```
using MySql.Data.MySqlClient;
namespace YourNamespace
{
public class DBHelper
{
private MySqlConnection conn;
private MySqlCommand cmd;
// 构造函数
public DBHelper(string connectionString)
{
conn = new MySqlConnection(connectionString);
cmd = new MySqlCommand();
cmd.Connection = conn;
}
// 打开数据库连接
private void Open()
{
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
}
// 关闭数据库连接
private void Close()
{
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
}
// 执行增、删、改操作
public int ExecuteNonQuery(string sql, params MySqlParameter[] parameters)
{
int result = 0;
try
{
Open();
cmd.CommandText = sql;
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
result = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Parameters.Clear();
Close();
}
return result;
}
// 执行查询操作
public MySqlDataReader ExecuteReader(string sql, params MySqlParameter[] parameters)
{
MySqlDataReader reader = null;
try
{
Open();
cmd.CommandText = sql;
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
Close();
throw ex;
}
return reader;
}
// 执行查询操作(返回单个值)
public object ExecuteScalar(string sql, params MySqlParameter[] parameters)
{
object result = null;
try
{
Open();
cmd.CommandText = sql;
foreach (MySqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
result = cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Parameters.Clear();
Close();
}
return result;
}
}
}
```
以上是一个基本的DBHelper类的实现,包含了打开、关闭数据库连接、执行增、删、改、查操作的方法。其他类可以直接调用DBHelper类中的相应方法即可实现访问数据库的功能。
使用示例:
```
// 实例化DBHelper对象
DBHelper dbHelper = new DBHelper("Server=127.0.0.1;Database=test;Uid=root;Pwd=123456;Charset=utf8;");
// 执行查询操作
MySqlDataReader reader = dbHelper.ExecuteReader("SELECT * FROM users WHERE id=@id", new MySqlParameter("@id", 1));
while (reader.Read())
{
Console.WriteLine(reader["id"].ToString() + " " + reader["name"].ToString());
}
reader.Close();
// 执行插入操作
int result = dbHelper.ExecuteNonQuery("INSERT INTO users(name, age) VALUES(@name, @age)", new MySqlParameter("@name", "张三"), new MySqlParameter("@age", 18));
Console.WriteLine(result);
```
阅读全文