相信很多人都有自己的代码库,其中当然包括数据库操作类, 我自己也有。不过我的数据库操作类都是基于SQL语句的,感觉比较落后,前段时间在网上查看了一个系统的数据库操作类,都是基于存储过程的,现在整理出来,大家分享一下。
首先引入必要的命名空间
using
System;
using System.Data; // 存储过程需要用到的命名空间
using System.Data.SqlClient;
......
using System.Data; // 存储过程需要用到的命名空间
using System.Data.SqlClient;
......
一:建立一个 “SqlConnection ”连接
public
static
SqlConnection ReturnCon()
{
string strCon=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection con=new SqlConnection(strCon);
if(con.State.Equals(ConnectionState.Closed))
{
con.Open();
}
return con;
}
{
string strCon=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection con=new SqlConnection(strCon);
if(con.State.Equals(ConnectionState.Closed))
{
con.Open();
}
return con;
}
二:执行 “ SqlCommand ” 命令 //可以有多个重载
public
static
SqlCommand Creatcmd(
string
procname,SqlParameter[] prams)
{
SqlConnection con = ReturnCon();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = procname;
cmd.CommandType = CommandType.StoredProcedure;
if(prams!=null)
{
foreach(SqlParameter parameter in prams)
{
if(parameter!=null)
{
cmd.Parameters.Add(parameter);
}
}
}
return cmd;
}
{
SqlConnection con = ReturnCon();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = procname;
cmd.CommandType = CommandType.StoredProcedure;
if(prams!=null)
{
foreach(SqlParameter parameter in prams)
{
if(parameter!=null)
{
cmd.Parameters.Add(parameter);
}
}
}
return cmd;
}
二(1)执行 cmd 的 ExecuteNonQuery //对应SqlCommand的参数 有多个重载
public
static
int
RunExecute(
string
procname,SqlParameter[] prams)
{
SqlConnection con=ReturnCon();
SqlCommand cmd=Creatcmd(procname,prams,con);
int intResult=Convert.ToInt32(cmd.ExecuteNonQuery());
con.Close();
return intResult;
}
{
SqlConnection con=ReturnCon();
SqlCommand cmd=Creatcmd(procname,prams,con);
int intResult=Convert.ToInt32(cmd.ExecuteNonQuery());
con.Close();
return intResult;
}
二(2)执行 cmd 的 ExecuteScalar //对应SqlCommand的参数 有多个重载
public
static
int
RunExecuteScalar(
string
procname,SqlParameter[] prams)
{
SqlConnection con=ReturnCon();
SqlCommand cmd=Creatcmd(procname,prams,con);
int intResult=Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return intResult;
}
{
SqlConnection con=ReturnCon();
SqlCommand cmd=Creatcmd(procname,prams,con);
int intResult=Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return intResult;
}
三(1):执行 SqlDataReader 读区数据
public
static
SqlDataReader RunProGetReader(
string
procname,SqlParameter[] prams)
{
SqlCommand cmd=Creatcmd(procname,prams);
SqlDataReader sdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
{
SqlCommand cmd=Creatcmd(procname,prams);
SqlDataReader sdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
三(2):执行 SqlDataAdapter 读区数据 返回 "DataTable" 对象
public
static
DataTable RunProGetTable(
string
procname,SqlParameter[] prams)
{
SqlCommand cmd=Creatcmd(procname,prams);
SqlDataAdapter sda=new SqlDataAdapter();
DataSet ds=new DataSet();
sda.SelectCommand=cmd;
sda.Fill(ds);
DataTable dt=ds.Tables[0];
con.Close();
return dt;
}
{
SqlCommand cmd=Creatcmd(procname,prams);
SqlDataAdapter sda=new SqlDataAdapter();
DataSet ds=new DataSet();
sda.SelectCommand=cmd;
sda.Fill(ds);
DataTable dt=ds.Tables[0];
con.Close();
return dt;
}
到此基本的操作已经完成 谢谢..