public tb_Products findProductById(int id) {
           tb_Products tp = new tb_Products();
           SqlDataReader reader = null;
           SqlParameter[] para = new SqlParameter[] {new SqlParameter("P_Id",id) };
           db.RunProc("UP_tb_Products_GetModel",para, out reader);
           while (reader.Read()) {
               tp.P_Details = reader["P_Details"].ToString();
               tp.P_Name = reader["P_Name"].ToString();
               tp.P_Originalprice =Convert.ToDecimal(reader["P_Originalprice"]);
               tp.P_Price =Convert.ToDecimal(reader["P_Price"]);
               tp.P_Summary = reader["P_Summary"].ToString();
               tp.P_Listpic = reader["P_Listpic"].ToString();
           }
           return tp;
       }tb_Products 是实体,        public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
        {
            SqlCommand cmd = CreateCommand(procName, prams);
            dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        }reader方法

解决方案 »

  1.   

    网站这样写,没有问题吗?再一个页面还有这样写的方法,效率怎么样  string sResult = new ProductService().ReturnAjaxStrings(sInput);     
            if (sResult.Length > 0) //如果有匹配项
                sResult = sResult.Substring(0, sResult.Length - 1); //去掉最后的“,”号
            Response.Write(sResult);
      

  2.   

    reader用完还是关闭
     string sResult = new ProductService().ReturnAjaxStrings(sInput);
    你这个是ajax的方式取数,直接write,效率很高。
      

  3.   

    reader用完还是要关闭 //少些了一个字,貌似意思就不一样了
    reader.Close();