using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
/// <summary>
/// sql server数据操作的底层类
/// </summary>
public class SQLHelper
{
public static string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"];
//1.查询列表 GetTable
/// <summary>
/// 查询命令(sql 语句或过程名),返回一个数据表
/// </summary>
/// <param name="cmdText">命令</param>
/// <param name="type">命令类型</param>
/// <param name="pms">sql参数</param>
/// <returns></returns>
public static DataTable GetTable(string cmdText,CommandType type, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = type;
if (pms != null) //判断是不是有参数传递进来 判断数组是不是null
{
foreach (SqlParameter item in pms)
{
if (item != null) //判断数组中的每一个元素是不是为null
{
cmd.Parameters.Add(item);
}
}
}
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds, "aa");
conn.Close();
//返回结果
DataTable dt = ds.Tables["aa"];
return dt;
//************************************
}
//给查询列表操作写一个执行sql语句的重载
/// <summary>
/// 执行sql语句,返回数据表
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="pms">sql语句所需要的参数</param>
/// <returns></returns>
public static DataTable GetTable(string sql, params SqlParameter[] pms)
{
return GetTable(sql, CommandType.Text, pms);
}
//2.执行命令返回影响行数 ExecuteNonQuery
public static int ExecuteNonQuery(string cmdText, CommandType type, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = type;
if (pms != null) //判断是不是有参数传递进来 判断数组是不是null
{
foreach (SqlParameter item in pms)
{
if (item != null) //判断数组中的每一个元素是不是为null
{
cmd.Parameters.Add(item);
}
}
}
int i = cmd.ExecuteNonQuery();
conn.Close();
return i;
}
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
return ExecuteNonQuery(sql, CommandType.Text, pms);
}
//3.查询返回结果中的首行首列 ExecuteSingle
public static object ExecuteSingle(string cmdText, CommandType type, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = type;
if (pms != null) //判断是不是有参数传递进来 判断数组是不是null
{
foreach (SqlParameter item in pms)
{
if (item != null) //判断数组中的每一个元素是不是为null
{
cmd.Parameters.Add(item);
}
}
}
object obj= cmd.ExecuteScalar();
conn.Close();
return obj;
}
public static object ExecuteSingle(string sql, params SqlParameter[] pms)
{
return ExecuteSingle(sql, CommandType.Text, pms);
}
//4.查询返回一个DataReader对象,让别人以游标的方式去读取数据 GetDataReader
public static SqlDataReader GetDataReader(string cmdText, CommandType type, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = type;
if (pms != null) //判断是不是有参数传递进来 判断数组是不是null
{
foreach (SqlParameter item in pms)
{
if (item != null) //判断数组中的每一个元素是不是为null
{
cmd.Parameters.Add(item);
}
}
}
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
public static SqlDataReader GetDataReader(string sql, params SqlParameter[] pms)
{
return GetDataReader(sql, CommandType.Text, pms);
}
}