using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
/// <summary>
///DBHelper 的摘要说明
/// </summary>
public static class DBHelper
{
public static SqlConnection conn;
/// <summary>
/// 获取连接对象
/// </summary>
public static SqlConnection Conn
{
get
{
//获取连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();
if(conn == null)
{//连接为空
conn = new SqlConnection(connectionString);
conn.Open();
}else if(conn.State == System.Data.ConnectionState.Closed)
{//连接状态为空
conn.Open();
}else if(conn.State == System.Data.ConnectionState.Broken)
{//连接断断续续(卡)
conn.Close();
conn.Open();
}
return conn;
}
}
/// <summary>
/// 执行,并返回影响的行数
/// </summary>
/// <returns></returns>
public static int ExecuteCommand(string safesql)
{
SqlCommand cmd = new SqlCommand(safesql,conn);
int result = cmd.ExecuteNonQuery();
return result;
}
/// <summary>
/// 返回影响行数
/// </summary>
/// <param name="safesql"></param>
/// <param name="pala"></param>
/// <returns></returns>
public static int ExectueCommand(string safesql,params SqlParameter[] pala)
{
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddRange(pala);
int result = cmd.ExecuteNonQuery();
return result;
}
/// <summary>
/// 执行查询返回查询得到的第一行第一列的对象
/// </summary>
/// <param name="safesql"></param>
/// <returns></returns>
public static string ReturnStringScalar(string safesql)
{
SqlCommand cmd = new SqlCommand(safesql,conn);
try
{
string result = cmd.ExecuteScalar().ToString();
return result;
}
catch
{
return "0";
}
finally
{
conn.Close();
}
}
public static int GetScalar(string safesql)
{
SqlCommand cmd = new SqlCommand(safesql,conn);
try
{
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
catch
{
return 0;
}
finally
{
conn.Close();
}
}
/// <summary>
/// 执行代码返回查询得到的第一行第一列的对象
/// </summary>
/// <param name="safesql"></param>
/// <param name="pala"></param>
/// <returns></returns>
public static int GetScalar(string safesql,params SqlParameter[] pala)
{
SqlCommand cmd = new SqlCommand(safesql,conn);
cmd.Parameters.AddRange(pala);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
/// <summary>
/// 通过Sql语句返回SqlDataReader对象
/// </summary>
/// <returns></returns>
public static SqlDataReader GetReader(string safesql)
{
conn.Open();
SqlCommand cmd = new SqlCommand(safesql,conn);
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
/// <summary>
/// 通过Sql语句返回SqlDataReader对象
/// </summary>
/// <param name="safesql"></param>
/// <param name="pala"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string safesql,params SqlParameter[] pala)
{
SqlCommand cmd = new SqlCommand(safesql,conn);
cmd.Parameters.AddRange(pala);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
/// <summary>
/// 通过Sql返回Table
/// </summary>
/// <param name="safesql"></param>
/// <returns></returns>
public static DataTable GetDataSet(string safesql)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(safesql,conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
/// <summary>
/// 通过Sql返回Table
/// </summary>
/// <param name="safesql"></param>
/// <param name="pala"></param>
/// <returns></returns>
public static DataTable GetDataSet(string safesql,params SqlParameter[] pala)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(safesql,conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Parameters.AddRange(pala);
da.Fill(ds);
return ds.Tables[0];
}
/// <summary>
/// GetDataSet(方法)和该方法都一样,为了不浪费资源,建议使用该方法
/// </summary>
/// <param name="safesql"></param>
/// <returns></returns>
public static DataTable GetDataTable(string safesql)
{
SqlCommand cmd = new SqlCommand(safesql, conn);
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
dr.Close();
return dt;
}
}