/// <summary>
/// 执行查询并返回 DataTable
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="connectionString">链接字符串</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static async Task<DataTable> ExecuteQueryAsync(string sql,string connectionString, SqlParameter[] parameters = null)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
using (SqlCommand command = new SqlCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
using (SqlDataReader reader = await command.ExecuteReaderAsync())
{
dataTable.Load(reader);
}
}
}
return dataTable;
}
/// <summary>
/// INSERT、UPDATE、DELETE,并返回受影响的行数。
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="connectionString">链接字符串</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static async Task<int> ExecuteNonQueryAsync(string sql, string connectionString, SqlParameter[] parameters = null)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
using (SqlCommand command = new SqlCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
return await command.ExecuteNonQueryAsync();
}
}
}
/// <summary>
/// 执行查询并返回单个值[第一行、第一列]
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="connectionString">链接字符串</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static async Task<object> ExecuteScalarAsync(string sql, string connectionString, SqlParameter[] parameters = null)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
using (SqlCommand command = new SqlCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
return await command.ExecuteScalarAsync();
}
}
}
/// <summary>
/// 执行存储过程并返回 DataTable
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="connectionString">链接字符串</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static async Task<DataTable> ExecuteStoredProcedureAsync(string sql, string connectionString, SqlParameter[] parameters = null)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
using (SqlDataReader reader = await command.ExecuteReaderAsync())
{
dataTable.Load(reader);
}
}
}
return dataTable;
}