.NET中DataReader与DataSet访问SqlServer数据库(C#)

来源:互联网 发布:qq农场刷金币软件 编辑:程序博客网 时间:2024/06/04 19:02


       首先呢,通过阐述DataSet与DataReader为用户查询数据库的过程,来看一下它们之间的区别


       DataSet:

                1.创建DataAdapter对象

                 2.定义DataSet对象

                 3.执行DataAdapter对象的Fill方法

                 4.将DataSet中的表绑定到数据控件中


          

  //利用WebConfig配置文件,获取一个Connection对象    public SqlConnection GetConnection()    {        string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();        SqlConnection myConn = new SqlConnection(myStr);        return myConn;    }    //简单的数据获取,连接数据库显示所有的信息    protected void bind()    {        SqlConnection myConn = GetConnection();        myConn.Open();        string sqlStr = "select * from tb_Class ";        SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);        DataSet myDs = new DataSet();        myDa.Fill(myDs);        GridView1.DataSource = myDs;        //指定GridView控件绑定的主键字段        GridView1.DataKeyNames = new string[] { "ID" };        GridView1.DataBind();        myDa.Dispose();        myDs.Dispose();        myConn.Close();    }


         DataReader:

                 1.创建链接

                 2.打开链接

                  3.创建Command对象

                  4.执行Command的ExecuteReader方法

                  5.将DataReader绑定到数据控件中去

                  6.关闭DataReader

                  7.关闭连接


          

            SqlConnection myConn = GetConnection();             string sqlStr = "select * from tb_News ";            SqlCommand myCmd = new SqlCommand(sqlStr, myConn);            myCmd.CommandType = CommandType.Text;            try            {                 //打开数据库连接                myConn.Open();                 //执行SQL语句,并返回DataReader对象                SqlDataReader myDr = myCmd.ExecuteReader();                //以粗体显示标题                this.labMessage.Text = "序号 新闻内容<br>";                //循环读取结果集                while (myDr.Read())                {                                         //读取数据库中的信息并显示在界面中                    this.labMessage.Text += myDr["NewsID"] + "     " + myDr["NewsContent"] + "<br>";                }                //关闭DataReader                myDr.Close();             }            catch(SqlException ex)            {                 //异常处理                Response.Write(ex.ToString());            }            finally            {                 //关闭数据库的连接                myConn.Close();                        }          


   一般来讲呢,遇到以下的情况时,建议使用DataSet:

            1.结果中有多个分离的表

             2.来自多个源的数据

             3.层之间交换数据或使用XML Web服务

             4.缓冲重复使用相同的行集合以提高性能

             5.对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其它客户端使用

             6.提供关系数据的分层XML视图并使用XSL转换或XML路径与查询等工具来处理数据



       然后下面的三种情况,建议使用DataReader:

             1.需要缓冲数据

              2.正在处理的结果集太大而不能全部放入内存中

              3.需要迅速,一次性的访问数据,且采用只向前的只读方式


        啦啦啦,最近由于工作需要,娴娴正在学习.NET,这些都是笔记啦,放在这里大家也可以参考一下~

        

        今天的鸡汤是,坚持你向往的,时间会给你的惊喜。

           













0 0
原创粉丝点击