通过分装的方法:

public class SQLHelper
{
private static readonly string ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();
//SqlParameter[] 方便传递数组

/// <summary>
/// 主要用于封装Command对象的ExecuteNonQuery方法,用于数据的增删改
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] cmdParams)
{
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand comm = new SqlCommand();

PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
return comm.ExecuteNonQuery();
}
catch (SqlException ex)
{

throw ex;
}
finally {
conn.Close();
}

}

/// <summary>
/// 封装Command对象的ExecuteReader 方法用于数据的查询
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回SqlDataReader对象</returns>
public static SqlDataReader ExcuteReader(string cmdText, CommandType cmdType, params SqlParameter[] cmdParams)
{
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand comm = new SqlCommand();
PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
//自动关闭
return comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException ex)
{

throw ex;
}
}

/// <summary>
/// 封装Commond对象的ExecuteScalar方法,用于返回首行首列数据
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回的是object单一的值</returns>
public static object ExecuteScalar(string cmdText, CommandType cmdType, params SqlParameter[] cmdParams)
{
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand comm = new SqlCommand();
PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
return comm.ExecuteScalar();
}
catch (SqlException ex)
{

throw ex;
}
finally
{
conn.Close();
}
}



/// <summary>
/// 主要用于返回DataTable 查询的数据
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回DataTable对象</returns>
public static DataTable GetDataTable(string cmdText, CommandType cmdType, params SqlParameter[] cmdParams)
{
SqlConnection conn = new SqlConnection();
SqlCommand comm = new SqlCommand();
PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
DataSet ds = new DataSet();
try
{
//自动打开自动关闭 实现断开式的链接
da.Fill(ds);
return ds.Tables[0];
}
catch (SqlException ex)
{

throw ex;
}
finally {
conn.Close();
}

}
/// <summary>
/// 主要用于给Command对象进行初始化赋值工作
/// </summary>
/// <param name="comm">是操作的Comman对象</param>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
private static void PrepareCommand(SqlCommand comm, SqlConnection conn, string cmdText, CommandType cmdType, SqlParameter[] cmdParams)
{
if (conn.State == ConnectionState.Closed) conn.Open();
comm.Connection = conn;
comm.CommandText = cmdText;
comm.CommandType = cmdType;
if (cmdParams != null)
{
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
}

}
}



}

 

 

Access数据库的帮助类:

public class AccessHelper
{
private static readonly string ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();
//SqlParameter[] 方便传递数组

/// <summary>
/// 主要用于封装Command对象的ExecuteNonQuery方法,用于数据的增删改
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params OleDbParameter[] cmdParams)
{
OleDbConnection conn = new OleDbConnection(ConnectionString);
OleDbCommand comm = new OleDbCommand();

PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
return comm.ExecuteNonQuery();
}
catch (OleDbException ex)
{

throw ex;
}
finally
{
conn.Close();
}

}

/// <summary>
/// 封装Command对象的ExecuteReader 方法用于数据的查询
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回SqlDataReader对象</returns>
public static OleDbDataReader ExcuteReader(string cmdText, CommandType cmdType, params OleDbParameter[] cmdParams)
{
OleDbConnection conn = new OleDbConnection(ConnectionString);
OleDbCommand comm = new OleDbCommand();

PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
//自动关闭
return comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (OleDbException ex)
{

throw ex;
}
}

/// <summary>
/// 封装Commond对象的ExecuteScalar方法,用于返回首行首列数据
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回的是object单一的值</returns>
public static object ExecuteScalar(string cmdText, CommandType cmdType, params OleDbParameter[] cmdParams)
{
OleDbConnection conn = new OleDbConnection(ConnectionString);
OleDbCommand comm = new OleDbCommand();

PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);
try
{
return comm.ExecuteScalar();
}
catch (OleDbException ex)
{

throw ex;
}
finally
{
conn.Close();
}
}



/// <summary>
/// 主要用于返回DataTable 查询的数据
/// </summary>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
/// <returns>返回DataTable对象</returns>
public static DataTable GetDataTable(string cmdText, CommandType cmdType, params OleDbParameter[] cmdParams)
{
OleDbConnection conn = new OleDbConnection(ConnectionString);
OleDbCommand comm = new OleDbCommand();

PrepareCommand(comm, conn, cmdText, cmdType, cmdParams);

OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = comm;
DataSet ds = new DataSet();
try
{
//自动打开自动关闭 实现断开式的链接
da.Fill(ds);
return ds.Tables[0];
}
catch (OleDbException ex)
{

throw ex;
}
finally
{
conn.Close();
}

}
/// <summary>
/// 主要用于给Command对象进行初始化赋值工作
/// </summary>
/// <param name="comm">是操作的Comman对象</param>
/// <param name="conn">Connection对象</param>
/// <param name="cmdText">Command.CommandText</param>
/// <param name="cmdType">Command.CommandType</param>
/// <param name="cmdParams">Command.Parameters</param>
private static void PrepareCommand(OleDbCommand comm, OleDbConnection conn, string cmdText, CommandType cmdType, OleDbParameter[] cmdParams)
{
if (conn.State == ConnectionState.Closed) conn.Open();
comm.Connection = conn;
comm.CommandText = cmdText;
comm.CommandType = cmdType;
if (cmdParams != null)
{
for (int i = 0; i < cmdParams.Length; i++)
{
comm.Parameters.Add(cmdParams[i]);
}

}
}
}

 

比较全的写法:

public static class DBHelper
{

private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}


public static int ExecuteCommand(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
return result;
}

public static int ExecuteCommand(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}

public static int GetScalar(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}

public static int GetScalar(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}

public static SqlDataReader GetReader(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}

public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}

public static DataTable GetDataSet(string safeSql)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(safeSql, Connection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}

public static DataTable GetDataSet(string sql, params SqlParameter[] values)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
public static object GetValueByWhetherNull(object obj) {
return obj == null ? (object)DBNull.Value : obj;
}

}

 

 

通过重载:

public class DataBaseHelper
{

/// <summary>
/// 定义静态的连接字符串
/// </summary>
private static string ConnString
{
get {
return System.Configuration.ConfigurationManager.ConnectionStrings["ErpConnString"].ConnectionString;

}
}


/// <summary>
/// 用于执行一个insert/update/delete语句或则相应的存储过程
/// </summary>
/// <param name="cmdText">insert/update/delete SQL语句或则 存储过程</param>
/// <param name="type">指定命令的类型</param>
/// <param name="pars">参数集合</param>
/// <returns>int</returns>
private static int ExcuteSqlReturnInt(string cmdText, CommandType type, params SqlParameter[] pars)
{
//实例化连接对象
SqlConnection conn = new SqlConnection();

try
{
//打开连接对象
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}
//实例化命令对象
SqlCommand sqlcommand = new SqlCommand(cmdText, conn);
//对命令对象参数集合赋值
if (pars != null && pars.Length > 0)
{
foreach (SqlParameter p in pars)
{
sqlcommand.Parameters.Add(p);
}
}
//给命令对象指定类型
sqlcommand.CommandType = type;
//通过ExecuteNonQuery执行数据库命令,并返回数据库受影响的行数。
int count = sqlcommand.ExecuteNonQuery();

return count;
}
catch (Exception ex)
{
return 0;
}
finally
{
conn.Close();

}
}


/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回DataSet
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">命令对象类型</param>
/// <param name="pars">Select语句或则相关的存储过程 所需的参数</param>
/// <returns>DataSet</returns>
private static DataSet SelectSQLReturnDataSet(string cmdText, CommandType type, params SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);

SqlDataAdapter sqldataadapter = new SqlDataAdapter(cmdText, conn);
if (pars != null && pars.Length > 0)
{
foreach (SqlParameter p in pars)
{
sqldataadapter.SelectCommand.Parameters.Add(p);
}
}
sqldataadapter.SelectCommand.CommandType = type;


DataSet dt = new DataSet();

sqldataadapter.Fill(dt);


return dt;

}


/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回DataSet
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">命令对象类型</param>
/// <param name="pars">Select语句或则相关的存储过程 所需的参数</param>
/// <returns>DataSet</returns>
private static DataSet SelectSQLReturnDataSet(string cmdText, CommandType type)
{
SqlConnection conn = new SqlConnection(ConnString);

SqlDataAdapter sqldataadapter = new SqlDataAdapter(cmdText, conn);

sqldataadapter.SelectCommand.CommandType = type;


DataSet dt = new DataSet();

sqldataadapter.Fill(dt);


return dt;

}

/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回DataTable
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">命令对象类型</param>
/// <param name="pars">Select语句或则相关的存储过程 所需的参数</param>
/// <returns>DataTable</returns>
private static DataTable SelectSQLReturnTable(string cmdText, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);

SqlDataAdapter sqldataadatapter = new SqlDataAdapter(cmdText, conn);

if (pars != null && pars.Length > 0)
{
foreach (SqlParameter p in pars)
{
sqldataadatapter.SelectCommand.Parameters.Add(p);
}
}
sqldataadatapter.SelectCommand.CommandType = type;

DataTable dt = new DataTable();

sqldataadatapter.Fill(dt);


return dt;

}


/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回DataTable
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">命令对象类型</param>
/// <param name="pars">Select语句或则相关的存储过程 所需的参数</param>
/// <returns>DataTable</returns>
private static DataTable SelectSQLReturnTable(string cmdText, CommandType type)
{
SqlConnection conn = new SqlConnection(ConnString);

SqlDataAdapter sqldataadatapter = new SqlDataAdapter(cmdText, conn);

sqldataadatapter.SelectCommand.CommandType = type;

DataTable dt = new DataTable();

sqldataadatapter.Fill(dt);


return dt;

}



/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回查询对象
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">命令对象类型</param>
/// <param name="pars">Select语句或则相关的存储过程 所需的参数</param>
/// <returns>object</returns>
private static object SelectSQLReturnObject(string cmdText, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);

try
{
SqlCommand cmd = new SqlCommand(cmdText, conn);
if (pars != null && pars.Length > 0)
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(pars);
}
}
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
conn.Open();
}

cmd.CommandType = type;

object obj = cmd.ExecuteScalar();

return obj;
}
catch (Exception ex)
{

return null;

}
finally
{
conn.Close();
}
}


}

 

/// <summary>
/// 执行一个Select语句或则相关的存储过程 并返回一个数据阅读器对象
/// </summary>
/// <param name="cmdText">Select语句或则相关的存储过程</param>
/// <param name="type">指定命令对象的类型</param>
/// <param name="pars">参数结合</param>
/// <returns>SqlDataReader</returns>
private static SqlDataReader SelectSQLReturnReader(string cmdText, CommandType type, SqlParameter[] pars)
{
SqlConnection conn = new SqlConnection(ConnString);

try
{
SqlCommand cmd = new SqlCommand(cmdText, conn);

if (pars != null && pars.Length > 0)
{
foreach (SqlParameter p in pars)
{
cmd.Parameters.Add(p);
}
}
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}

cmd.CommandType = type;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return reader;
}
catch (Exception ex)
{

return null;
}

}

 

 

重载的方法:

/// <summary>
/// 实现所有对SQL Server数据库的所有访问操作
/// </summary>
public class SqlDBHelp
{
private static string _connStr = "server=.uid=sa;pwd=;database=B2C";

private static SqlConnection sqlcon;

/// <summary>
/// 获取一个可用于数据库操作的连接类
/// </summary>
private static SqlConnection Connection
{
get
{
if (sqlcon == null)
{
sqlcon = new SqlConnection(_connStr);
sqlcon.Open();
}
else if (sqlcon.State == ConnectionState.Broken || sqlcon.State == ConnectionState.Closed)
{
sqlcon.Close();
sqlcon.Open();
}

return sqlcon;
}
}

/// <summary>
/// 根据查询的语句返回执行受影响的行数
/// </summary>
/// <param name="strsql">Insert、Update、Delete语句</param>
/// <returns>执行受影响的行数</returns>
public static int GetExecute(string strsql)
{
int i=-1;
try
{
SqlCommand sqlcmd = new SqlCommand(strsql, Connection);
i= sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return i;
}

/// <summary>
/// 根据查询的语句返回执行受影响的行数
/// </summary>
/// <param name="strsql">Insert、Update、Delete语句</param>
/// <param name="p">给SQL语句传递的参数集合</param>
/// <returns>执行受影响的行数</returns>
public static int GetExecute(string strsql,params SqlParameter[] p)
{
int i = -1;
try
{
SqlCommand sqlcmd = new SqlCommand(strsql, Connection);
sqlcmd.Parameters.AddRange(p);
i = sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return i;
}



/// <summary>
/// 根据查询的语句获取查询的结果集
/// </summary>
/// <param name="strsql">Select语句</param>
/// <returns>查询的结果-表数据</returns>
public static DataTable GetTable(string strsql)
{
DataTable dt = null;
try
{
SqlDataAdapter sda = new SqlDataAdapter(strsql, Connection);
dt = new DataTable();
sda.Fill(dt);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return dt;
}

/// <summary>
/// 根据查询的语句获取查询的结果集
/// </summary>
/// <param name="strsql">Select语句</param>
/// <param name="p">给SQL语句传递的参数集合</param>
/// <returns>查询的结果-表数据</returns>
public static DataTable GetTable(string strsql,params SqlParameter[] p)
{
DataTable dt = null;
try
{
SqlDataAdapter sda = new SqlDataAdapter(strsql, Connection);
sda.SelectCommand.Parameters.AddRange(p);
dt = new DataTable();
sda.Fill(dt);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return dt;
}

/// <summary>
/// 根据查询的语句返回一个值
/// </summary>
/// <param name="strsql">Select语句</param>
/// <returns>单值</returns>
public static string GetSingle(string strsql)
{
object o = "";
try
{
SqlCommand sqlcmd = new SqlCommand(strsql, Connection);
o = sqlcmd.ExecuteScalar();

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return o.ToString();
}


/// <summary>
/// 根据查询的语句返回一个值
/// </summary>
/// <param name="strsql">Select语句</param>
/// <param name="p">给SQL语句传递的参数集合</param>
/// <returns>单值</returns>
public static string GetSingle(string strsql,params SqlParameter[] p)
{
object o = "";
try
{
SqlCommand sqlcmd = new SqlCommand(strsql, Connection);
sqlcmd.Parameters.AddRange(p);
o = sqlcmd.ExecuteScalar();

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return o.ToString();
}


/// <summary>
/// 根据查询语句返回轻量级的SqlDataReader对象
/// </summary>
/// <param name="strsql">Select语句</param>
/// <returns>轻量级的SqlDataReader对象</returns>
public static SqlDataReader GetReader(string strsql)
{
SqlCommand sqlcmd = new SqlCommand(strsql,Connection);
return sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}


/// <summary>
/// 根据查询语句返回轻量级的SqlDataReader对象
/// </summary>
/// <param name="strsql">Select语句</param>
/// <param name="p">给SQL语句传递的参数集合</param>
/// <returns>轻量级的SqlDataReader对象</returns>
public static SqlDataReader GetReader(string strsql,params SqlParameter[] p)
{
SqlCommand sqlcmd = new SqlCommand(strsql, Connection);
sqlcmd.Parameters.AddRange(p);
return sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}

public static bool GetTransOperate(string[] strsqls)
{
bool isflag = false;
SqlTransaction trans=Connection.BeginTransaction();
SqlCommand sqlcmd = new SqlCommand();

try
{
foreach (string s in strsqls)
{
sqlcmd.CommandText = s;
sqlcmd.Connection = sqlcon;
sqlcmd.ExecuteNonQuery();
}
isflag = true;
trans.Commit();
}
catch (Exception ex)
{
isflag = false;
trans.Rollback();
throw new Exception(ex.Message);
}
finally
{
CloseConnection();
}
return isflag;
}


/// <summary>
/// 关闭数据库连接
/// </summary>
private static void CloseConnection()
{
if (sqlcon != null)
{
sqlcon.Close();
}
}
}