ADO.NET——DataSet & DataAdapter

来源:互联网 发布:知乎用户数量2017 编辑:程序博客网 时间:2024/04/29 04:32

一,基础知识


        在使用ADO.NET访问数据的时候,有两种方法:


     1,使用Connection+Command+DataReader方法 


     使用ADO.NET的Datareader对象能从数据库中检索数据。检索出来的数据形成一个只读只进的数据流,存储在客户端的网络缓冲区内。Datareader对象的read方法可以前进到一下条记录。在默认情况下,每执行一次read方法只会在内存中存储一条记录系统的开销非常少。创建datareader之前必须先创建sqlcommand对象,然后调用该对象的executereader方法来构造sqldatareader对象,而不是直接使用构造函数。

    示例:ADO.NET——Command(执行SQL) & DataReader(读取数据库)


  

    2,使用Connection+DataAdapter+DataSet


       使用这种方法,主要是用DataAdapter充当DataSet和数据源之间用于检索和保存数据的桥梁,然后将从数据库中检索到的数据存放到DataSet或者DataTable中,也就是本机的内存中,然后对数据进行检索。这样,相当于数据库中的信息在本机copy之后产生了一个副本。我们使用的是这个副本,最后,才将操作的结果返回数据库。这样节约了网络资源,但是,在有不同用户的并发操作时,就行PV操作那样,由于存在与时间有关的错误,容易造成用户数据不准确。

  

二,DataAdapter+DataSet取代Comman+DataReader访问数据库的示例

static void Main(string[] args)        {            //创建连接            string strConn = "database=Login;server=localhost;UID=sa;PWD=123456";  //连接字符串            using (SqlConnection conn = new SqlConnection(strConn)) //建立连接,并且当连接使用完后自动关闭            {                conn.Open();  //打开连接                                string strSQL = "select * from Users where ID='1'";  //查询语句                            SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn);  //执行查询                DataSet dataset = new DataSet();  //用来存放查询的数据                adapter.Fill(dataset);   //将查询的结果转入dataset                //显示查询结果                DataTable table = dataset.Tables[0];  //第一张表                int i=0;    //第一行row=0                DataRow row = table.Rows[i]; //得到每一行                string name = Convert.ToString(row["UserName"]);  //将得到的object数据转换成字符串                Console.WriteLine("ID是:1;UserName是:{0}",name);   //输出ID=‘1’时所对应的UserName            }                    }

 

      与只读的DataReader相比,可以用DataAdapter+DataSet对数据库进行update.

 


1 0
原创粉丝点击