一、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/zh-tw/n/251016.html