zoukankan      html  css  js  c++  java
  • DBHelper

    public class DBHelper
    {
        //属性:数据库链接对象
        private static SqlConnection conn;
        public static SqlConnection Conn
        {
            get
            {
             //   string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; ///////// connstr 更据实际情况更改
                string connstr = ConfigurationSettings.AppSettings["DataBase"]; 
                if (conn == null)
                    conn = new SqlConnection(connstr);
                if (conn.State == ConnectionState.Closed)
                    conn.Open();
                if (conn.State == ConnectionState.Broken)
                {
                    conn.Close();
                    conn.Open();
                }
                return conn;
            }
        }


        //方法:查询,DataReader
        public static SqlDataReader GetReader(string SqlStr)
        {
            SqlCommand cmd = new SqlCommand(SqlStr, Conn);
            return cmd.ExecuteReader();
        }

        public static SqlDataReader GetReader(string SqlStr, SqlParameter[] paras)
        {
            SqlCommand cmd = new SqlCommand(SqlStr, Conn);
            cmd.Parameters.AddRange(paras);
            return cmd.ExecuteReader();
        }


        //查询:DataTable
        public static DataTable GetTable(string SqlStr)
        {
            SqlDataAdapter dap = new SqlDataAdapter(SqlStr, Conn);
            DataSet ds = new DataSet();
            dap.Fill(ds);
            conn.Close();
            return ds.Tables[0];

        }

        //增删改
        public static bool Execute(string SqlStr)
        {
            SqlCommand cmd = new SqlCommand(SqlStr, Conn);
            int result = cmd.ExecuteNonQuery();
            conn.Close();
            return result > 0;
        }

        //返回首行首列
        public static object GetScalar(string SqlStr)
        {
            SqlCommand cmd = new SqlCommand(SqlStr, Conn);
            object obj = cmd.ExecuteScalar();
            conn.Close();
            return obj;
        }
    }

    ----------------------------------------------------------
    ///////////////下面的类执行存储过程
    ----------------------------------------------------------

     public class execProc
     {
      string ProcName ="";
      SqlParameter[] SqlParameter = null;
      string DBName = "";
      
            /// <summary>
            ///存储过程构造函数
            /// </summary>
            /// <param name="procName">名称</param>
            /// <param name="sqlParameter">参数</param>
            /// <param name="dbName">数据库名</param>
      public execProc(string procName,SqlParameter[] sqlParameter,string dbName)
      {
       this.ProcName = procName;
       this.SqlParameter = sqlParameter;
       this.DBName = dbName;
      }


      /// 构建 SqlCommand 对象
      private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
      {
       SqlCommand command = new SqlCommand(storedProcName, connection);
       command.CommandType = CommandType.StoredProcedure;
       foreach (SqlParameter parameter in parameters)
       {
        if (parameter != null)
        {
         // 检查未分配值的输出参数,将其分配以DBNull.Value.
         if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
          (parameter.Value == null))
         {
          parameter.Value = DBNull.Value;
         }
         command.Parameters.Add(parameter);
        }
       }

       return command;
      }


      /// <summary>
      /// 执行存储过程返回DATATABLE
      /// </summary>
      /// <returns></returns>
      public  DataTable ExecProcReturnDatatable()
      {
      
       SqlConnection con= new SqlConnection();
       SqlDataAdapter da=new SqlDataAdapter();
       DataSet ds=new DataSet();
       DataTable dt = new DataTable();
                con = DBHelper.Conn;  //调用DBHELPER的东西

       SqlCommand command = BuildQueryCommand(con, ProcName, SqlParameter);
       //建立数据池
       da = new SqlDataAdapter(command);
       try
       {
        command.ExecuteNonQuery();
        ds = new DataSet();
        da.Fill(ds);
        dt = ds.Tables[0];
        int i = dt.Rows.Count;
       }
       catch(Exception ex)
       {
        return null;
       }
       finally
       {
        con.Close();
        command.Dispose();
        con.Dispose();
       }
       
       return dt;

      }
     }

  • 相关阅读:
    [CLRS][CH 19]斐波那契堆
    [CLRS][CH 20] van Emde Boas 树
    [C++11] lambda函数
    常用网站整理
    词法分析原理 Lexical Analysis
    ie8开发人员工具无法使用,按f12任务栏里出现任务,但是窗体不弹出
    IE6下zindex犯癫不起作用bug的初步研究(转)
    ie8无法浏览png格式图片
    jquery.pngFix在最新的jquery1.7上无效的问题解决方法!
    用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)(转)
  • 原文地址:https://www.cnblogs.com/jacd/p/1556109.html
Copyright © 2011-2022 走看看