C#版,用了好幾年了。還比較全的,在此記錄,歡迎補充、指導。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace RushiDAL
{
public class DBHelper
{
static readonly string strCon = ConfigurationManager.ConnectionStrings["rszyManage"].ConnectionString;
/// <summary>
/// 連接數據庫
/// </summary>
/// <returns></returns>
public static SqlConnection GetCon()
{
SqlConnection con = new SqlConnection(strCon);
return con;
}
/// <summary>
/// 查詢多行多列方法
/// </summary>
/// <param name="sql"></param>
/// <param name="para"></param>
/// <returns></returns>
public static DataSet ExecuteQuery(string sql, SqlParameter[] para)
{
SqlConnection con = GetCon();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(sql, con);
if (para != null)
{
adapter.SelectCommand.Parameters.AddRange(para);
}
adapter.Fill(ds);
CloseResource(con); //關閉資源 2013-11-25 add
return ds;
}
/// <summary>
/// 非查詢方法
/// </summary>
/// <param name="sql"></param>
/// <param name="para"></param>
/// <returns>返回:受影響的行數</returns>
public static int ExecuteNonQuery(string sql, SqlParameter[] para)
{
SqlConnection con = GetCon();
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
if (para != null)
{
cmd.Parameters.AddRange(para);
}
int result = cmd.ExecuteNonQuery();
CloseResource(con); //關閉資源
return result;
}
/// <summary>
/// 執行存儲過程(非查詢)
/// </summary>
/// <param name="sql"></param>
/// <param name="para"></param>
/// <returns></returns>
public static int StoredNonQuery(string sql, SqlParameter[] para)
{
SqlConnection con = GetCon();
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandType = CommandType.StoredProcedure;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
int result = cmd.ExecuteNonQuery();
CloseResource(con);
return result;
}
/// <summary>
/// 查詢一行一列
/// </summary>
/// <param name="sql"></param>
/// <param name="para"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, SqlParameter[] para)
{
SqlConnection con = GetCon();
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
if (para != null)
{
cmd.Parameters.AddRange(para);
}
object obj = cmd.ExecuteScalar();
CloseResource(con); //關閉資源 2013-11-25 add
return obj;
}
/// <summary>
/// 關閉資源
/// </summary>
/// <param name="con"></param>
public static void CloseResource(SqlConnection con)
{
if (con != null)
{
con.Close();
}
}
}
}