helper層

設兩個字段
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();
    }
}

 

 

 

 

 

 

 

 

 

 

 

發佈了44 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章