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();
}
}
}
}