private static readonly string strConn = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
/// <summary>
/// 执行查询(非连接式),将查询结果全部加载到内存中
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="parameters">SQL参数集合</param>
/// <returns>包含查询结果的表</returns>
public static DataTable ExecQuery(string sql, params SqlParameter[] parameters)
{
//using加载完之后自动关闭
using (SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, strConn))
{
using (DataTable table = new DataTable())
{
//判断参数中是否有值
if (parameters != null && parameters.Count() > 0)
{
//将参数集合加载到SelectCommand
dataAdapter.SelectCommand.Parameters.AddRange(parameters);
}
try
{
dataAdapter.Fill(table);
}
catch (Exception ex) //执行出错,释放资源
{
table.Dispose();
dataAdapter.Dispose();
//抛出异常
throw ex;
}
return table;
}
}
}