如何创建和使用ASP.NET中的数据库公共类?

在ASP.NET开发中,数据库公共类是一个非常重要的组件,它封装了数据库连接、查询、事务处理等操作,使业务逻辑层更专注于业务规则,而无需关注底层的数据库实现细节,下面将详细介绍如何创建和使用一个ASP.NET数据库公共类:

如何创建和使用ASP.NET中的数据库公共类?

一、数据库公共类的基本结构

1. 命名空间和引用

需要定义命名空间并引入必要的命名空间:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

2. 配置连接字符串

在Web.config文件中配置连接字符串:

<configuration>
  <appSettings>
    <add key="DBConnStr" value="database=softtest; server=EZ-23; uid=sa; pwd=11111;Max pool size =100; enlist=true;persist security info=true"/>
  </appSettings>
</configuration>

3. 数据库连接类

创建一个名为DBConnection的类,用于管理数据库连接:

如何创建和使用ASP.NET中的数据库公共类?

namespace SoftTest.ClassLibrary.Connection
{
    public class DBConnection
    {
        private SqlConnection MyConnection;
        private SqlTransaction MyTrans;
        // 获取连接字符串
        private string GetDBaseConnectionString()
        {
            return ConfigurationManager.AppSettings["DBConnStr"];
        }
        // 打开数据库连接
        public SqlConnection OpenDB()
        {
            try
            {
                MyConnection = new SqlConnection(GetDBaseConnectionString());
                if (MyConnection.State != ConnectionState.Open)
                {
                    MyConnection.Open();
                }
                return MyConnection;
            }
            catch (SqlException ex)
            {
                if (ex.Number != 0)
                {
                    Console.WriteLine("数据库联接失败!<BR><BR>数据库或网络不可用,请与系统管理员联系!");
                }
                return null;
            }
        }
        // 关闭数据库连接
        public void CloseDB()
        {
            if (MyConnection != null && MyConnection.State == ConnectionState.Open)
            {
                MyConnection.Close();
            }
        }
    }
}

二、数据库操作方法

1. 执行增删改操作

public int ExecuteNonQuery(string sql, CommandType commandType, params SqlParameter[] parameters)
{
    using (SqlConnection conn = OpenDB())
    {
        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
            cmd.CommandType = commandType;
            cmd.Parameters.AddRange(parameters);
            return cmd.ExecuteNonQuery();
        }
    }
}

2. 执行查询操作

public DataTable ExecuteQuery(string sql, CommandType commandType, params SqlParameter[] parameters)
{
    using (SqlConnection conn = OpenDB())
    {
        using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn))
        {
            adapter.SelectCommand.CommandType = commandType;
            adapter.SelectCommand.Parameters.AddRange(parameters);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            return dt;
        }
    }
}

三、使用示例

1. 调用增删改方法

DBConnection dbConn = new DBConnection();
int result = dbConn.ExecuteNonQuery("UPDATE Users SET Name = @Name WHERE Id = @Id", CommandType.Text, new SqlParameter("@Name", "John"), new SqlParameter("@Id", 1));

2. 调用查询方法

DBConnection dbConn = new DBConnection();
DataTable users = dbConn.ExecuteQuery("SELECT * FROM Users WHERE Age > @Age", CommandType.Text, new SqlParameter("@Age", 25));

四、常见问题及解答

Q1: 如何在Web.config中配置多个数据库连接字符串?

A1: 可以在<connectionStrings>节中添加多个连接字符串,然后在代码中使用相应的键来获取连接字符串。

如何创建和使用ASP.NET中的数据库公共类?

<connectionStrings>
    <add name="PrimaryDB" connectionString="..."/>
    <add name="SecondaryDB" connectionString="..."/>
</connectionStrings>

在代码中获取连接字符串:

string primaryConnStr = ConfigurationManager.ConnectionStrings["PrimaryDB"].ConnectionString;

Q2: 如何处理数据库连接池以提高性能?

A2: 数据库连接池是自动管理的,但可以通过设置连接字符串中的参数来优化,可以设置Max Pool SizeMin Pool Size来控制连接池的大小,确保在应用程序结束时正确关闭连接,以便连接可以被回收到连接池中。

以上内容就是解答有关“asp.net 数据库公共类”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。