SQLHelp sql数据库的DAL

连接SQL数据的DAL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;


namespace DAL
{
public class SqlHelper
{
//连接字符
public static string sqlconnstring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

#region 一个已经连接等待使用的对象
/// <summary>
/// 创建一个连接好并等待使用的对象
/// </summary>
/// <param name="conn">连接字符串</param>
/// <param name="cmd">已经建立的SqlCommand对象</param>
/// <param name="cmdType">连接类型(存储过程还是字符串)</param>
/// <param name="sqlText">存储过程名或者SQL语句</param>
/// <param name="parms">参数列表</param>
public static void PrepareCommand(SqlConnection conn, SqlCommand cmd, CommandType cmdType, string sqlText, SqlParameter[] parms)
{
//判断数据库的连接状态
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.Connection = conn;//传递连接字符串
cmd.CommandText = sqlText;//存储过程名或者SQL语句
cmd.CommandType = cmdType;//连接类型

if (parms != null)//如果参数列表不为空
{
foreach (var item in parms)
{
cmd.Parameters.Add(item);
}
}


}
#endregion

#region ExecuteNonQuery
/// <summary>
/// 执行一个返回影响行数的SQLCommand命令
/// </summary>
/// <param name="connentionstring">连接字符串</param>
/// <param name="cmdType">命令类型(存储过程,Sql语句)</param>
/// <param name="sqlText">存储过程名称,或者Sql语句</param>
/// <param name="parms">参数列表</param>
/// <returns>返回数据库中受到影响的行数</returns>
public static int ExecuteNonQuery(string connentionstring, CommandType cmdType, string sqlText, SqlParameter[] parms)
{
SqlCommand cmd = new SqlCommand();
try
{
using (SqlConnection conn = new SqlConnection(connentionstring))
{
PrepareCommand(conn, cmd, cmdType, sqlText, parms);
int value = cmd.ExecuteNonQuery();
return value;
}
}
catch (Exception e)
{
throw e;
}
}
#endregion

#region ExecuteReader
/// <summary>
/// 一个顺序只读的SqlCommand对象
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdType">连接类型(存储过程,或者SQL语句)</param>
/// <param name="sqlText">存储过程名或者SQL语句</param>
/// <param name="parms">数组话的参数列表</param>
/// <returns>返回 一个SqlDataReader类型的结果集</returns>
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string sqlText, SqlParameter[] parms)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString);
try
{
PrepareCommand(conn, cmd, cmdType, sqlText, parms);
SqlDataReader sdr = cmd.ExecuteReader();
return sdr;
}
catch
{
conn.Close();
throw;
}
}
#endregion

#region ExecuteScalar
/// <summary>
/// 执行一个返还第一行第一列的SqlCommand
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdtype">连接类型(存储过程,SQL语句)</param>
/// <param name="sqltext">存储过程名或者需要执行的SQL语句</param>
/// <param name="parms">参数列表</param>
/// <returns>返还一个Object 类型的值,使用过程中需要做类型转换</returns>
public static object ExecuteScalar(string connectionString, CommandType cmdtype, string sqltext, SqlParameter[] parms)
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(conn, cmd, cmdtype, sqltext, parms);
Object obj = cmd.ExecuteScalar();
return obj;
}
}
#endregion

#region ExecuteDataset
/// <summary>
/// 执行一个返回DataSet集
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="cmdType">连接类型(存储过程,SQL语句)</param>
/// <param name="sqltext">需要执行的SQL语句或存储过程名</param>
/// <param name="parms">参数列表</param>
/// <returns>返回一个DataSet集</returns>
public static DataSet ExecuteDataset(string connectionString, CommandType cmdType, string sqltext, SqlParameter[] parms)
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(conn, cmd, cmdType, sqltext, parms);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
}
}
#endregion

}
}

 

posted @ 2012-03-15 12:37  Sky.Grain  阅读(247)  评论(0编辑  收藏  举报