我有一个DataSet 封装代码,之前少用 没有调用,
  /// <summary>
        /// 执行传入的存储过程名和参数结构体,返回DataSet对象
        /// </summary>
        /// <param name="strProName"></param>
        /// <param name="stProParameters"></param>
        /// <returns></returns>
        public static DataSet Re_DataSet(string strProName, ProceducreParameter[] stProParameters)
        {
            using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
            {
                ConnExsql.Open(Conn);
                DataSet ds = null;
                using (SqlCommand Cmd = new SqlCommand(strProName, Conn))
                {
                    Cmd.CommandType = CommandType.StoredProcedure;
                    for (int i = 0; i < stProParameters.Length; ++i)//注意,不是“i++”!
                    {
                        ProceducreParameter stProPar = stProParameters[i];
                        SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
                        sp.Direction = stProPar.TabStrDirection;
                        sp.Value = stProPar.TabStrValue;
                        Cmd.Parameters.Add(sp);
                    }
                    using (SqlDataAdapter da = new SqlDataAdapter(Cmd))
                    {
                        ds = new DataSet();
                        da.Fill(ds);
                        //da.Dispose();
                    }
                    Cmd.Parameters.Clear();
                    //Cmd.Dispose();
                }
                ConnExsql.Close(Conn);
                return ds;
            }
        }调用读取数据库的语句怎么写??如SqlDataReader:
 /// <summary>
        /// 执行传入的存储过程名,返回SqlDataReader对象
        /// </summary>
        /// <param name="strProName">存储过程名称</param>
        /// <param name="stProParameters">存储过程变量</param>
        /// <param name="DR">返回的SqlDataReader对象</param>
        /// <returns></returns>
        public static SqlDataReader Re_DataReader(string strProName, ProceducreParameter[] stProParameters)
        {
            using (SqlConnection Conn = new SqlConnection(SqlConn.ConnSting))
            {
                ConnExsql.Open(Conn);
                SqlDataReader Dr = null;
                using (SqlCommand Cmd = new SqlCommand(strProName, Conn))//SqlCommand Cmd;
                {
                    Cmd.CommandType = CommandType.StoredProcedure;
                    for (int i = 0; i < stProParameters.Length; ++i)//注意不是“i++”!
                    {
                        ProceducreParameter stProPar = stProParameters[i];
                        SqlParameter sp = new SqlParameter(stProPar.TabStrName, stProPar.TabStrType, stProPar.TabStrSize);
                        sp.Direction = stProPar.TabStrDirection;
                        sp.Value = stProPar.TabStrValue;
                        Cmd.Parameters.Add(sp);
                    }
                    Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    Cmd.Parameters.Clear();
                    //Cmd.Dispose();
                   
                }
                ConnExsql.Close(Conn);
                return Dr;
            }
        }读取数据的时候这样调用:
 SqlDataReader sdr = Proce.Re_DataReader("储存过程", Proc);
 while (dr.Read())
            {
                html.Append("" + dr["AdImg"].ToString() + "");
            }
            dr.Close();
            dr.Dispose();如果用DataSet 请问该怎么改 像上面这样可以直接读取数据呢?谢谢datasetC#

解决方案 »

  1.   

    方法不是有了吗
    DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
      

  2.   

    DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
    DataTable table = ds.Tables[0];
    foreach DataTable 的Rows属性
      

  3.   

    DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
    DataTable table = ds.Tables[0];
    foreach DataTable 的Rows属性 
      

  4.   

    下一个dbhelper嘛,这种问题没有什么好纠结的.
      

  5.   

    谢谢楼上的而且我已经弄好了,顺便分享下给需要的朋友:格式:
      DataTable Dt = ds.Tables[0];
                for (int i = 0; i < Dt.Rows.Count; i++)
                {
                    DataRow Row = Dt.Rows[i];
                    html.Append("<li>" + sdr["ExpressNum"].ToString() + "</li>\n");
                }
                Dt.Rows.Clear();好了,谢谢大家
      

  6.   

    data 有个table属性的,你自己好好看看可以用数组方式读!
      

  7.   

    刚才个有个小错误:
      DataTable Dt = ds.Tables[0];
                for (int i = 0; i < Dt.Rows.Count; i++)
                {
                    DataRow Row = Dt.Rows[i];
                    html.Append("<li>" + Row["ExpressNum"].ToString() + "</li>\n");
                }
                Dt.Rows.Clear();好了,谢谢大家