首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# DataSet 打包代码 读取实例代码

2013-07-08 
c# DataSet 封装代码 读取实例代码我有一个DataSet 封装代码,之前少用 没有调用,/// summary/// 执行传

c# DataSet 封装代码 读取实例代码
我有一个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 请问该怎么改 像上面这样可以直接读取数据呢?谢谢 dataset C#
[解决办法]
DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
DataTable table = ds.Tables[0];
foreach DataTable 的Rows属性
[解决办法]
DataSet ds= Proce.Re_DataSet("储存过程名称", 参数);
DataTable table = ds.Tables[0];
foreach DataTable 的Rows属性 

热点排行