設兩個字段
private SqlConnection conn=null;
private readonly string returnValue="returnValue";
打開數據庫方法
public void ConnOpen()
{
if(conn==null)
{
conn=new SqlConnection(configurationManager.ConnectionString["SQLconn"].ToString());
}
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
}
關閉數據庫方法
public void ConnClose()
{
if(conn!=null)
{
if(conn.State==ConnectionState.Open)
{
conn.Close();
}
}
}
釋入資源
public void Disponse()
{
if(conn!=null)
{
conn.Disponse();
conn=null;
}
}
生成存儲過程參數方法
private SqlParameter CreateParameter(string ParameterName,SqlDbType DbType,Int32 Size,ParameterDirection PDirection,object Value)
{
SqlParameter parameter;
if(Size>0)
{
parameter=new SqlParameter(ParameterName,DbType,Size);
}
else
{
parameter=new SqlParameter(ParameterName,DbType);
}
parameter.Direction=PDirection;
if(!(PDirection==Parameter.output&&Value==null))
{
parameter.Value=Value;
}
return parameter;
}
傳入參數
public SqlParameter CreateInParameter(string ParameterName,SqlDbType DbType,int32 Size,object Value)
{
return CreateParameter(ParameterName,DbType,Size,ParameterDirection.Input,Value);
}
public SqlParameter CreateOutParameter(string ParameterNAme,SqlDbType DbType,int32 Size,object Value)
{
return CreateParameter(ParameterName,DbType,Size,ParameterDirection.Output,Value);
}
創建一個SqlCommand對象來執行存儲過程
private SqlCommand CreateProcCommand(string ProcName,SqlParameter[] parameter)
{
ConnOpen();
SqlCommand cmd=new SqlCommand(ProcName,conn);
cmd.CommandType=CommandType.StoreProcedure;
if(parameter!=null)
{
foreach(SqlParamete Parames in parameter)
{
cmd.Parameters.Add(parames);
}
}
cmd.Parameters.Add(new SqlParameter(returnValue,SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));
return cmd;
}
執行存儲過程
public int RunProc(string procName,SqlParameter[]parameter)
{
SqlCommand cmd=CreateProcCommand(procName,parameter);
try
{
return cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
ConnClose();
}
}
public void RunProc(string procName,SqlParameter[]parameter)
{
SqlCommand cmd=CreateProcCommand(procName,parameter);
try
{
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
ConnClose();
}
}
public void RunProcRead(string procName,out SqlDataReader dataReader)
{
SqlCommand cmd=CreateProcCommand(procName,null);
try
{
dataReader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader=null;
throw new Exception(ex.Message);
}
}
public void RunProcRead(string procName,SqlParameter[]parameter,out SqlDataReader dataReader)
{
SqlCommand cmd=CreateProcCommand(ProcName,parameter);
try
{
dataReader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader=null;
throw new Exception(ex.Message);
}
}
創建一個DataSet來存儲數據
public DataSet CreateDataSet(string procName)
{
ConnOpen();
try
{
SqlCommand cmd=CreateProcCommand(procName,null);
SqlDataAdapter ds=new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataSet ds=new DataSet();
ds.Fill(ds);
return ds;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
ConnClose();
}
}
public DataSet CreateDataSet(string procName,SqlParameter[]parameter)
{
ConnOpen();
try
{
SqlCommand cmd=CreateProcCommand(procName,parameter);
SqlDataAdapter ds=new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataSet ds=new DataSet();
ds.Fill(ds);
return ds;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
ConnClose();
}
}
創建一個DataTable來存儲數據
public DataTable CreateDataTable(string procName)
{
ConnOpen();
try
{
SqlCommand cmd = CreateProcCommand(procName, null);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
ConnClose();
}
}