一、DbHelper类怎么调用
DbHelper是一个通用的数据库操作类,可以用于各种不同的数据源,比如SQL Server、MySQL、Oracle等等。它是封装ADO.NET操作的一个类,可以简化常见的数据库操作。我们在项目中使用DbHelper类来连接并操作数据库。
DbHelper的调用方式非常简单,我们只需要在需要用到它的文件中加入以下using语句:
using DbHelper;
之后就可以直接使用DbHelper类中的方法,比如连接数据库、执行SQL语句并返回结果等等。
二、DbHelper用Model类
在操作数据库时,我们通常会将数据库中的表映射为一个个Model类,在代码中使用Model类来操作数据库。可以将DbHelper和Model类结合使用,提高开发效率。
在Model类中可以定义各种属性和方法,用于操作数据库中的数据。而在使用DbHelper类时,只需要通过它提供的方法连接数据库、执行增删改查等操作,并将结果存储到Model类中,就可以对数据进行操作。
三、DbHelper类连接数据库
DbHelper类提供了多种方法来连接数据库,包括连接字符串和Connection对象。下面是通过连接字符串连接数据库的示例:
string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Demo;Integrated Security=True;";
DbHelper dbHelper = new DbHelper(connectionString);
在实例化DbHelper类时,我们需要传入连接字符串作为参数。通过这个连接字符串,DbHelper就可以连接到指定的数据库中并进行操作。
四、DbHelper使用教程
这里是一个简单的DbHelper使用教程,用于连接并操作SQL Server数据库。我们需要将以下代码复制到自己的项目中,并修改连接字符串和SQL语句等参数:
string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Demo;Integrated Security=True;";
DbHelper dbHelper = new DbHelper(connectionString);
//执行查询操作
string sql = "select * from Customers where CustomerID=@CustomerID";
SqlParameter[] parameters = { new SqlParameter("@CustomerID", "ALFKI") };
DataTable dataTable = dbHelper.ExecuteDataTable(sql, parameters);
//将查询结果赋值给Model类
Customer customer = new Customer();
customer.CustomerID = dataTable.Rows[0]["CustomerID"].ToString();
customer.CompanyName = dataTable.Rows[0]["CompanyName"].ToString();
//其他属性赋值...
//执行插入操作
sql = "insert into Customers(CustomerID, CompanyName) values(@CustomerID, @CompanyName)";
parameters = new SqlParameter[] {
new SqlParameter("@CustomerID", customer.CustomerID),
new SqlParameter("@CompanyName", customer.CompanyName)
};
int rows = dbHelper.ExecuteNonQuery(sql, parameters);
在上面的代码中,我们首先实例化了一个DbHelper类,然后执行了一个查询操作,将结果存储到DataTable中。接着,我们将查询结果赋值给了一个Model类的实例。最后,我们执行了一个插入操作,将Model类中的属性值插入到数据库中。
五、DbHelper下载
DbHelper是一个开源的项目,可以在GitHub上免费下载。使用DbHelper类时,需要将它的源代码添加到自己的项目中。下载地址:https://github.com/laomms/DbHelper。
六、DbHelperSql
DbHelperSql是一个专门用于连接SQL Server数据库的DbHelper扩展类。它在DbHelper基础上,增加了一些常用的SQL Server数据库操作方法。使用DbHelperSql可以更加方便地进行数据库操作。
以下是一个使用DbHelperSql类连接并操作SQL Server数据库的示例:
string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Demo;Integrated Security=True;";
DbHelperSql dbHelperSql = new DbHelperSql(connectionString);
//执行查询操作
string sql = "select * from Customers where CustomerID=@CustomerID";
SqlParameter[] parameters = { new SqlParameter("@CustomerID", "ALFKI") };
DataTable dataTable = dbHelperSql.ExecuteDataTable(sql, parameters);
//将查询结果赋值给Model类
Customer customer = new Customer();
customer.CustomerID = dataTable.Rows[0]["CustomerID"].ToString();
customer.CompanyName = dataTable.Rows[0]["CompanyName"].ToString();
//其他属性赋值...
//执行插入操作
sql = "insert into Customers(CustomerID, CompanyName) values(@CustomerID, @CompanyName)";
parameters = new SqlParameter[] {
new SqlParameter("@CustomerID", customer.CustomerID),
new SqlParameter("@CompanyName", customer.CompanyName)
};
int rows = dbHelperSql.ExecuteNonQuery(sql, parameters);
七、DbHelper类基本代码
以下是DbHelper类的基本代码,可以用于连接和操作各种不同类型的数据库:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
namespace DbHelper
{
public class DbHelper
{
protected DbProviderFactory factory;
protected DbConnection connection;
public DbHelper(string connectionString)
{
factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
}
public virtual DataTable ExecuteDataTable(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
using (DbDataAdapter adapter = factory.CreateDataAdapter())
{
adapter.SelectCommand = command;
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
}
}
public virtual object ExecuteScalar(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteScalar();
}
}
public virtual int ExecuteNonQuery(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteNonQuery();
}
}
public virtual DbDataReader ExecuteReader(string sql, params DbParameter[] parameters)
{
DbCommand command = connection.CreateCommand();
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
public virtual void Open()
{
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
}
public virtual void Close()
{
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
}
}
}
八、DbHelper.cs代码
以下是DbHelper.cs文件的代码,包括了DbHelper类的基本实现以及一些扩展方法。这个文件可以直接添加到项目中,用于连接和操作SQL Server数据库。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
namespace DbHelper
{
public class DbHelper
{
protected DbProviderFactory factory;
protected DbConnection connection;
public DbHelper(string connectionString)
{
factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
}
public virtual DataTable ExecuteDataTable(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
using (DbDataAdapter adapter = factory.CreateDataAdapter())
{
adapter.SelectCommand = command;
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
}
}
public virtual object ExecuteScalar(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteScalar();
}
}
public virtual int ExecuteNonQuery(string sql, params DbParameter[] parameters)
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteNonQuery();
}
}
public virtual DbDataReader ExecuteReader(string sql, params DbParameter[] parameters)
{
DbCommand command = connection.CreateCommand();
command.CommandText = sql;
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
public virtual void Open()
{
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
}
public virtual void Close()
{
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
}
}
public static class DbHelperExtensions
{
public static int ExecuteNonQuery(this DbHelper dbHelper, string sql, Dictionary<string, object> parameters)
{
List<DbParameter> dbParameters = new List<DbParameter>();
foreach (KeyValuePair<string, object> parameter in parameters)
{
dbParameters.Add(dbHelper.CreateParameter(parameter.Key, parameter.Value));
}
return dbHelper.ExecuteNonQuery(sql, dbParameters.ToArray());
}
public static object ExecuteScalar(this DbHelper dbHelper, string sql, Dictionary<string, object> parameters)
{
List<DbParameter> dbParameters = new List<DbParameter>();
foreach (KeyValuePair<string, object> parameter in parameters)
{
dbParameters.Add(dbHelper.CreateParameter(parameter.Key, parameter.Value));
}
return dbHelper.ExecuteScalar(sql, dbParameters.ToArray());
}
public static DataTable ExecuteDataTable(this DbHelper dbHelper, string sql, Dictionary<string, object> parameters)
{
List<DbParameter> dbParameters = new List<DbParameter>();
foreach (KeyValuePair<string, object> parameter in parameters)
{
dbParameters.Add(dbHelper.CreateParameter(parameter.Key, parameter.Value));
}
return dbHelper.ExecuteDataTable(sql, dbParameters.ToArray());
}
public static DbParameter CreateParameter(this DbHelper dbHelper, string name, object value)
{
return dbHelper.factory.CreateParameter(name, value);
}
public static DbParameter CreateParameter(this DbProviderFactory factory, string name, object value)
{
DbParameter parameter = factory.CreateParameter();
parameter.ParameterName = name;
parameter.Value = value;
return parameter;
}
}
}
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/251016.html