SQLHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace CommonClass
{
static class SqlHelpers
{
/// <summary>
/// 数据库连接串
/// </summary>
private static SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ToString());
/// <summary>
/// 打开或者关闭数据库连接
/// </summary>
private static void ConnStateChange()
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
else
{
connection.Close();
}
}
#region SQL语句
/// <summary>
/// 查询是否包含某一满足条件的记录
/// </summary>
/// <param name="Querystr">SQL语句字符串</param>
/// <returns>包含返回;true 不包含则返回:false</returns>
public static bool isHaveRecord(string Querystr)
{
return isHaveRecord(Querystr, null);
}
/// <summary>
/// 查询是否包含某一满足条件的记录(带参数)
/// </summary>
/// <param name="QueryStr">SQL语句字符串</param>
/// <param name="ParameterList">参数数组</param>
/// <returns>包含返回;true 不包含则返回:false</returns>
public static bool isHaveRecord(string QueryStr, params SqlParameter[] ParameterList)
{
try
{
SqlCommand cmd = new SqlCommand(QueryStr);
ConnStateChange();
if (ParameterList != null)
{
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
}
return cmd.ExecuteReader().Read() == true ? true : false;
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
/// <summary>
/// 获取查询结果集
/// </summary>
/// <param name="QueryStr">SQL语句字符串</param>
/// <returns>返回一个DataTable</returns>
public static DataTable ExecuteDataTable(string QueryStr)
{
return ExecuteDataTable(QueryStr, null);
}
/// <summary>
/// 获取查询结果集
/// </summary>
/// <param name="QueryStr">SQL语句字符串</param>
/// <param name="ParameterList">参数数组</param>
/// <returns>返回一个DataTable</returns>
public static DataTable ExecuteDataTable(string QueryStr, params SqlParameter[] ParameterList)
{
try
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand();
ConnStateChange();
if (ParameterList != null)
{
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="QueryStr">SQL语句</param>
/// <returns>受影响行数大于0返回true 否则返回 false</returns>
public static bool ExecuteNonQuery(string QueryStr)
{
return ExecuteNonQuery(QueryStr, null);
}
/// <summary>
/// 执行带参数的SQL语句
/// </summary>
/// <param name="QueryStr">SQL语句</param>
/// <param name="ParameterList">SqlParameter参数数组</param>
/// <returns>受影响行数大于0返回true 否则返回 false</returns>
public static bool ExecuteNonQuery(string QueryStr, params SqlParameter[] ParameterList)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
ConnStateChange();
if (ParameterList != null)
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = QueryStr;
}
return cmd.ExecuteNonQuery() > 0 ? true : false;
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
#endregion
#region 存储过程
/// <summary>
/// 查询是否包含某一满足条件的记录
/// </summary>
/// <param name="Querystr">存储过程</param>
/// <returns>包含返回;true 不包含则返回:false</returns>
public static bool isProHaveRecord(string ProName)
{
return isProHaveRecord(ProName, null);
}
/// <summary>
/// 查询是否包含某一满足条件的记录(带参数)
/// </summary>
/// <param name="QueryStr">存储过程</param>
/// <param name="ParameterList">参数数组</param>
/// <returns>包含返回;true 不包含则返回:false</returns>
public static bool isProHaveRecord(string ProName, params SqlParameter[] ParameterList)
{
try
{
SqlCommand cmd = new SqlCommand(ProName);
ConnStateChange();
if (ParameterList != null)
{
cmd.Connection = connection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.Connection = connection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
}
return cmd.ExecuteReader().Read() == true ? true : false;
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
/// <summary>
/// 获取查询结果集
/// </summary>
/// <param name="QueryStr">存储过程</param>
/// <returns>返回一个DataTable</returns>
public static DataTable ExecuteProDataTable(string ProName)
{
return ExecuteDataTable(ProName, null);
}
/// <summary>
/// 获取查询结果集
/// </summary>
/// <param name="QueryStr">存储过程</param>
/// <param name="ParameterList">SqlParameter参数数组</param>
/// <returns>返回一个DataTable</returns>
public static DataTable ExecuteProDataTable(string ProName, params SqlParameter[] ParameterList)
{
try
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand();
ConnStateChange();
if (ParameterList != null)
{
cmd.Connection = connection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.Connection = connection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="QueryStr">存储过程名称</param>
/// <returns>受影响行数大于0返回true 否则返回 false</returns>
public static bool ExecuteProNonQuery(string ProName)
{
return ExecuteProNonQuery(ProName, null);
}
/// <summary>
/// 执行带参数的存储过程
/// </summary>
/// <param name="QueryStr">存储过程</param>
/// <param name="ParameterList">SqlParameter参数数组</param>
/// <returns>受影响行数大于0返回true 否则返回 false</returns>
public static bool ExecuteProNonQuery(string ProName, params SqlParameter[] ParameterList)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
ConnStateChange();
if (ParameterList != null)
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
cmd.Parameters.AddRange(ParameterList);
}
else
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ProName;
}
return cmd.ExecuteNonQuery() > 0 ? true : false;
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnStateChange();
}
}
#endregion
#region Insert DataTable To DB
/// <summary>
/// 把DataTable的数据写入数据库(DataTable的数据列的顺序必须与数据库表的列顺序相同)
/// </summary>
/// <param name="dt">需要写入的DataTable</param>
/// <param name="DestinationTableName">被写入的数据库中的表名称</param>
public static void InsertDatableToDB(DataTable dt, string DestinationTableName)
{
using (SqlBulkCopy sqlBC = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["conn"].ToString(), SqlBulkCopyOptions.UseInternalTransaction))
{
sqlBC.BatchSize = 100;
sqlBC.NotifyAfter = 1;
sqlBC.DestinationTableName = DestinationTableName;
for (int i = 0; i < dt.Columns.Count; i++)
{
sqlBC.ColumnMappings.Add(i,i);//(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
}
sqlBC.WriteToServer(dt);
}
}
#endregion
}
}
种一棵树最好的时间是十年前,其次是现在.

浙公网安备 33010602011771号