⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqldatabase.cs

📁 前台首页:users/index.aspx 后台首页:login.aspx 这是一个有关宠物的电子商务网站 注:后台的“售后服务” 和“数据统计”这两块由于时间原因暂时 没完成。由于技术问
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// SqlDataBase 的摘要说明。
/// </summary>
public class SqlDataBase
{

    private SqlConnection cn;		//创建SQL连接
    private SqlDataAdapter sda;		//创建SQL数据适配器
    private SqlDataReader sdr;		//创建SQL数据读取器
    private SqlCommand cmd;			//创建SQL命令对象
    private DataSet ds;				//创建数据集
    private DataView dv;			//创建视图

    public SqlDataBase()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    #region 打开数据库连接
    /// <summary>
    /// 打开数据库连接
    /// </summary>
    private void Open()
    {

        cn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstr"].ToString());
        
        cn.Open();
    }
    #endregion

    #region 关闭数据库连接
    /// <summary>
    /// 关闭数据库连接
    /// </summary>
    private void Close()
    {
        if (cn != null)
        {
            cn.Close();
            cn.Dispose();
        }
    }
    #endregion

    #region 返回DataSet数据集
    /// <summary>
    /// 返回DataSet数据集
    /// </summary>
    /// <param name="strSql">SQL语句</param>
    public  DataSet GetDs(string strSql)
    {
        Open();
        sda = new SqlDataAdapter(strSql, cn);
        ds = new DataSet();
        sda.Fill(ds);
        Close();
        return ds;
    }
    #endregion

    #region 返回DataView数据视图
    /// <summary>
    /// 返回DataView数据视图
    /// </summary>
    /// <param name="strSql">Sql语句</param>
    public DataView GetDv(string strSql)
    {
        ds = GetDs(strSql);
        dv = ds.Tables[0].DefaultView;
        return dv;
    }
    #endregion

    #region 获得DataTable对象
    /// <summary>
    /// 获得DataTable对象
    /// </summary>
    /// <param name="strSql">SQL语句</param>
    /// <returns></returns>
    public DataTable GetTable(string strSql)
    {
        return GetDs(strSql).Tables[0];
    }
    #endregion

    #region 获得SqlDataReader对象,使用完须关闭DataReader,关闭数据库连接
    /// <summary>
    /// 获得SqlDataReader对象
    /// </summary>
    /// <param name="strSql">sql语句</param>
    /// <returns></returns>
    public SqlDataReader GetDataReader(string strSql)
    {
        Open();
        cmd = new SqlCommand(strSql, cn);
        sdr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        return sdr;
    }
    #endregion

    #region 简单执行SQL语句
    /// <summary>
    /// 执行Sql语句
    /// </summary>
    /// <param name="strSql"></param>
    public void RunSql(string strSql)
    {
        Open();
        cmd = new SqlCommand(strSql, cn);
        cmd.ExecuteNonQuery();
        Close();
    }
    #endregion

    #region 执行SQL语句,返回第一行第一列结果
    /// <summary>
    /// 执行SQL语句,并返回第一行第一列结果
    /// </summary>
    /// <param name="strSql">SQL语句</param>
    /// <returns></returns>
    public string RunSqlReturn(string strSql)
    {
        string strReturn = "";
        Open();
        try
        {
            cmd = new SqlCommand(strSql, cn);
            strReturn = cmd.ExecuteScalar().ToString();
        }
        catch
        {
        }
        Close();
        return strReturn;
    }
    #endregion

    #region 执行存储过程,返回存储过程返回值
    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="procName">存储过程的名称</param>
    /// <returns>返回存储过程返回值</returns>
    public int RunProc(string procName)
    {
        SqlCommand cmd = CreateCommand(procName, null);
        cmd.ExecuteNonQuery();
        this.Close();
        return (int)cmd.Parameters["ReturnValue"].Value;
    }
#endregion
    
    #region 执行存储过程,需要参数,返回存储过程返回值

    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="procName">存储过程名称</param>
    /// <param name="prams">存储过程所需参数</param>
    /// <returns>返回存储过程返回值</returns>
    public int RunProc(string procName, SqlParameter[] prams)
    {
      
        SqlCommand cmd = CreateCommand(procName, prams);
        cmd.ExecuteNonQuery();
        this.Close();
        return (int)cmd.Parameters["ReturnValue"].Value;
        
    }

    #endregion

    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="procName">存储过程的名称</param>
    /// <param name="dataReader">返回存储过程返回值</param>
    public void RunProc(string procName, out SqlDataReader dataReader)
    {
        SqlCommand cmd = CreateCommand(procName, null);
        dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        //return (int)cmd.Parameters["ReturnValue"].Value;
    }

    #region 执行存储过程,返回一个datareader
    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="procName">存储过程的名称</param>
    /// <param name="prams">存储过程所需参数</param>
    /// <param name="dataReader">存储过程所需参数</param>
    public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
    {
        SqlCommand cmd = CreateCommand(procName, prams);
        dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        //return (int)cmd.Parameters["ReturnValue"].Value;
    }

    #endregion


    #region 根据带参数的存储过程,返回一个sqlcommand对象
    /// <summary>
    /// 创建一个SqlCommand对象以此来执行存储过程
    /// </summary>
    /// <param name="procName">存储过程的名称</param>
    /// <param name="prams">存储过程所需参数</param>
    /// <returns>返回SqlCommand对象</returns>
    private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
    {
        // 确认打开连接
        Open();


        SqlCommand cmd = new SqlCommand(procName, cn);
        cmd.CommandType = CommandType.StoredProcedure;

        // 依次把参数传入存储过程
        if (prams != null)
        {
            foreach (SqlParameter parameter in prams)
                cmd.Parameters.Add(parameter);
        }

        // 加入返回参数
        cmd.Parameters.Add(
            new SqlParameter("ReturnValue", SqlDbType.Int, 4,
            ParameterDirection.ReturnValue, false, 0, 0,
            string.Empty, DataRowVersion.Default, null));

        return cmd;
    }
    #endregion


    #region 释放资源
    /// <summary>
    /// 释放资源
    /// </summary>
    public void Dispose()
    {
        // 确认连接是否已经关闭
        if (cn != null)
        {
            cn.Dispose();
            cn = null;
        }
    }
    #endregion


    #region 传入输入参数
    /// <summary>
    /// 传入输入参数
    /// </summary>
    /// <param name="ParamName">存储过程名称</param>
    /// <param name="DbType">参数类型</param></param>
    /// <param name="Size">参数大小</param>
    /// <param name="Value">参数值</param>
    /// <returns>新的 parameter 对象</returns>
    public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
    {
        return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
    }

    #endregion


    #region 传入返回值参数
    /// <summary>
    /// 传入输出参数
    /// </summary>
    /// <param name="ParamName">存储过程名称</param>
    /// <param name="DbType">参数类型</param>
    /// <param name="Size">参数大小</param>
    /// <returns>新的 parameter 对象</returns>
    public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
    {
        return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
    }

    #endregion
     
    #region 添加一个返回值

    public SqlParameter MakeReturnParam(string ParamName, SqlDbType DbType, int size, object value)
    {
        return MakeParam(ParamName,DbType,size,ParameterDirection.ReturnValue,null);
    }
    #endregion


    #region 生成存储过程参数
    /// <summary>
    /// 生成存储过程参数
    /// </summary>
    /// <param name="ParamName">存储过程名称</param>
    /// <param name="DbType">参数类型</param>
    /// <param name="Size">参数大小</param>
    /// <param name="Direction">参数方向</param>
    /// <param name="Value">参数值</param>
    /// <returns>新的 parameter 对象</returns>
    public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
    {
        SqlParameter param;

        if (Size > 0)
            param = new SqlParameter(ParamName, DbType, Size);
        else
            param = new SqlParameter(ParamName, DbType);

        param.Direction = Direction;
        if (!(Direction == ParameterDirection.Output && Value == null))
            param.Value = Value;

        return param;
    }

    #endregion
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -