以下是“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技术站