public IDataReader CheckUser(string strUserXml)
        {
            StringBuilder strUsers = new StringBuilder();
            IDataReader reader = null;
            Database db = null;
            DbCommand dbc = null;            try
            {
                db = DatabaseFactory.CreateDatabase();
                dbc = db.GetStoredProcCommand("Proc_Web_T_CheckUsersExists");
                dbc.Parameters.Add(DataAccess.DataAccess.AddParamInput("@users", strUserXml, SqlDbType.NVarChar));                reader = db.ExecuteReader(dbc);
            }
            catch (Exception ex)
            {
                reader = null;
                throw ex;
            }
            return reader;
        }
最好是可以逐行逐句的解释下,以及他有什么作用,没有他会有什么影响,先谢谢了。菜鸟,多多照顾

解决方案 »

  1.   

    public IDataReader CheckUser(string strUserXml)
      {
      StringBuilder strUsers = new StringBuilder(); //StringBuilder,这个好,拼字符串的,效率高。
      IDataReader reader = null; //定义DataReader,执行查询数据库功能(定义和声明有什么区别记不清楚了)
      Database db = null; //定义数据库类
      DbCommand dbc = null; //定义数据库命令类  try
      {
      db = DatabaseFactory.CreateDatabase(); //实例化数据库类(工厂模式)
      dbc = db.GetStoredProcCommand("Proc_Web_T_CheckUsersExists");  //执行的命令是一个存储过程
      dbc.Parameters.Add(DataAccess.DataAccess.AddParamInput("@users", strUserXml, SqlDbType.NVarChar));  //存储过程中的变量 (where name=@users)  reader = db.ExecuteReader(dbc);  //执行查询语句,返回一个reader,用它的read()方法可以一条条读取查询到的记录。
      }
    /***
    *处理异常,比如无法链接数据库,无法执行语句等都会抛出异常,抓住直接丢掉,然后将reader重置
    */
      catch (Exception ex)
      {
      reader = null; 
      throw ex;
      }
      return reader; //返回reader
      }
    一年没碰过了,希望大牛纠正