ASP.NET封装的SQL数据库访问类

以下是“ASP.NET封装的SQL数据库访问类”的完整攻略,包含两个示例。

ASP.NET封装的SQL数据库访问类

在ASP.NET中,我们可以使用SQL数据库来存储和管理数据。为了方便使用,我们可以封装一个SQL数据库访问类,用于处理数据库操作。在本攻略中,我们将详细讲解如何封装一个SQL数据库访问类,并提供两个示例。

封装SQL数据库访问类

以下是一个示例,演示如何封装一个SQL数据库访问类:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;

public class SqlHelper
{
    private string connectionString;

    public SqlHelper(string connectionString)
    {
        this.connectionString = connectionString;
    }

    public int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddRange(parameters);
                connection.Open();
                return command.ExecuteNonQuery();
            }
        }
    }

    public object ExecuteScalar(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddRange(parameters);
                connection.Open();
                return command.ExecuteScalar();
            }
        }
    }

    public DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddRange(parameters);
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataTable dataTable = new DataTable();
                adapter.Fill(dataTable);
                return dataTable;
            }
        }
    }

    public List<T> ExecuteList<T>(string sql, Func<IDataReader, T> func, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                command.Parameters.AddRange(parameters);
                connection.Open();
                List<T> list = new List<T>();
                using (IDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        T item = func(reader);
                        list.Add(item);
                    }
                }
                return list;
            }
        }
    }
}

在上述代码中,我们定义了一个SqlHelper类,用于封装SQL数据库访问。我们实现了ExecuteNonQuery、ExecuteScalar、ExecuteDataTable和ExecuteList等方法,用于执行SQL语句并返回结果。

示例1:使用SqlHelper类执行SQL语句

以下是一个示例,演示如何使用SqlHelper类执行SQL语句:

string connectionString = "Data Source=(local);Initial Catalog=TestDB;Integrated Security=True";
SqlHelper sqlHelper = new SqlHelper(connectionString);

// 执行INSERT语句
string insertSql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
SqlParameter[] insertParameters = new SqlParameter[]
{
    new SqlParameter("@Name", "Tom"),
    new SqlParameter("@Age", 20)
};
int rowsAffected = sqlHelper.ExecuteNonQuery(insertSql, insertParameters);

// 执行SELECT语句
string selectSql = "SELECT * FROM Users WHERE Age > @Age";
SqlParameter[] selectParameters = new SqlParameter[]
{
    new SqlParameter("@Age", 18)
};
DataTable dataTable = sqlHelper.ExecuteDataTable(selectSql, selectParameters);
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine(row["Name"] + " " + row["Age"]);
}

在上述代码中,我们使用SqlHelper类执行INSERT和SELECT语句。我们首先创建一个SqlHelper实例,并传递连接字符串。然后,我们使用ExecuteNonQuery方法执行INSERT语句,并使用ExecuteDataTable方法执行SELECT语句。

示例2:使用SqlHelper类查询数据并转换为对象列表

以下是一个示例,演示如何使用SqlHelper类查询数据并转换为对象列表:

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

string connectionString = "Data Source=(local);Initial Catalog=TestDB;Integrated Security=True";
SqlHelper sqlHelper = new SqlHelper(connectionString);

// 执行SELECT语句并转换为对象列表
string selectSql = "SELECT * FROM Users WHERE Age > @Age";
SqlParameter[] selectParameters = new SqlParameter[]
{
    new SqlParameter("@Age", 18)
};
List<User> userList = sqlHelper.ExecuteList(selectSql, reader =>
{
    User user = new User();
    user.Name = reader.GetString(reader.GetOrdinal("Name"));
    user.Age = reader.GetInt32(reader.GetOrdinal("Age"));
    return user;
}, selectParameters);
foreach (User user in userList)
{
    Console.WriteLine(user.Name + " " + user.Age);
}

在上述代码中,我们使用SqlHelper类执行SELECT语句,并将结果转换为User对象列表。我们首先创建一个SqlHelper实例,并传递连接字符串。然后,我们使用ExecuteList方法执行SELECT语句,并使用Func委托将IDataReader转换为User对象。

结论

在攻略中,我们详细讲解了如何封装一个SQL数据库访问类,并提供了两个示例,演示了如何使用SqlHelper类执行SQL语句和查询数据并转换为对象列表。如果您正在开发ASP.NET应用程序,并需要访问SQL数据库,请务必了解SqlHelper类的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET封装的SQL数据库访问类 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • ASP.NET笔记之 行命令处理与分页详解

    以下是“ASP.NET笔记之 行命令处理与分页详解”的完整攻略,包含两个示例。 ASP.NET笔记之 行命令处理与分页详解 在ASP.NET开发中,行命令处理和分页是非常常见的需求。以下是行命令处理和分页的详细说明。 行命令处理 行命令处理是指在GridView或DataGrid等控件中,处理行级别的操作,例如编辑、删除、更新等。以下是行命令处理的示例。 p…

    Asp.NET 2023年5月16日
    00
  • 解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置

    以下是“解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置”的完整攻略,包含两个示例。 解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置 在ASP.NET 5 & MVC6系列教程的第四篇文章中,我们将介绍ASP.NET 5和MVC6的核心技术和环境配置。本攻略将对该文章进行详细解读,并提供两…

    Asp.NET 2023年5月16日
    00
  • ASP.NET预定义模板介绍

    以下是“ASP.NET预定义模板介绍”的完整攻略,包含两个示例。 ASP.NET预定义模板介绍 ASP.NET提供了许多预定义模板,可以帮助您快速创建各种类型的Web应用程序。本攻略将介绍ASP.NET中的一些常见预定义模板,并提供两个示例来说明如何使用这些模板。 常见预定义模板 以下是ASP.NET中的一些常见预定义模板: 空白模板:一个空白的Web应用程…

    Asp.NET 2023年5月16日
    00
  • asp.net发邮件的几种方法汇总

    以下是“ASP.NET发邮件的几种方法汇总”的完整攻略,包含两个示例。 ASP.NET发邮件的几种方法汇总 在ASP.NET中,我们可以使用多种方法来发送邮件。以下是ASP.NET发邮件的几种方法汇总。 方法一:使用System.Net.Mail命名空间 使用System.Net.Mail命名空间是ASP.NET中最常用的发送邮件的方法。以下是一个示例,演示…

    Asp.NET 2023年5月16日
    00
  • ASP.NET MVC5网站开发咨询管理的架构(十一)

    以下是“ASP.NET MVC5网站开发咨询管理的架构(十一)”的完整攻略,包含两个示例。 ASP.NET MVC5网站开发咨询管理的架构(十一) 在ASP.NET MVC5网站开发中,咨询管理是一个常见的功能。在本攻略中,我们将详细讲解咨询管理的架构,并提供两个示例。 咨询管理的架构 咨询管理的架构包含以下几个部分: 数据库:用于存储咨询数据。 模型:用于…

    Asp.NET 2023年5月16日
    00
  • asp.net 的错误处理机制讲解

    以下是“ASP.NET的错误处理机制讲解”的完整攻略,包含两个示例。 ASP.NET的错误处理机制讲解 ASP.NET提供了一套完整的错误处理机制,可以帮助开发人员捕获和处理应用程序中的错误。本攻略将介绍ASP.NET的错误处理机制,并提供两个示例来说明如何使用这些机制。 错误处理机制 ASP.NET的错误处理机制包括以下几个方面: 自定义错误页:可以为应用…

    Asp.NET 2023年5月16日
    00
  • asp.net 不用组件的URL重写(适用于较大型项目)

    以下是“asp.net 不用组件的URL重写(适用于较大型项目)”的完整攻略,包含两个示例。 asp.net 不用组件的URL重写(适用于较大型项目) 在asp.net中,URL重写是一个常见的需求。本攻略将提供一个详细的教程,演示如何在asp.net中实现URL重写,而不使用任何组件。 示例1:使用Global.asax实现URL重写 以下是一些基本步骤,…

    Asp.NET 2023年5月16日
    00
  • Asp.net 页面导航的几种方法与比较 分享

    以下是“Asp.net 页面导航的几种方法与比较 分享”的完整攻略,包含两个示例。 Asp.net 页面导航的几种方法与比较 分享 在Asp.net中,页面导航是一个非常重要的功能。本攻略将介绍Asp.net中的几种页面导航方法,并对它们进行比较。我们还将提供两个示例来说明如何使用这些方法。 Asp.net页面导航的几种方法 以下是Asp.net中的几种页面…

    Asp.NET 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部