DataCommand和DataAdapter


SqlDataReader 高效,功能弱,只讀訪問
SqlDataAdapter 強大,要求資源也大一點

SqlDataReader 只能在保持跟數據庫連接的狀態下才可以讀取。。。

SqlDataAdapter 大多情況下是一次性讀取一個表,然后填充到DataSet中,然后就可以斷開跟數據庫的連接了。

因為DataSet是離線的,所以SqlDataAdapter這個對象是連接DataSet和數據庫的橋梁,所有對DataSet的操作(填充,更新等)都要通過他   
    
  ado.net數據訪問有兩種方式:   
    
  1.離線--通過DataSet,然后離線增,刪,改,最后通過SqlDataAdapter解   析到數據庫中   
    
  2.直接對數據庫操作SqlCommand   (Update,Insert,Delete)


SqlCommand就是是命令了,可以用它來執行SQL命令   
  SqlDataAdapter就是數據適配器了,它是用於在數據源和數據集之間通訊的一組對象
SqlCommand對應DateReader   
  SqlDataAdapter對應DataSet

 

一、DataCommand

 1 string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
 2 SqlConnection sqlconn = new SqlConnection(sqlconnstr);
 3 //建立Command對象
 4 SqlCommand sqlcommand = new SqlCommand();
 5 //Command對象的屬性賦值
 6 sqlcommand.Connection = sqlconn;
 7 sqlcommand.CommandText = "delete from Employees where ID=@ID";
 8 sqlcommand.Parameters.AddWithValue("@ID", TextBox1.Text);
 9 //打開數據庫連接
10 sqlconn.Open();
11 
12 //執行數據庫操作
13 intDeleteCount = sqlcommand.ExecuteNonQuery();
14 
15 刪除對象、關閉連接
16 
17 sqlcommand = null;
18 sqlconn.Close();
19 sqlconn = null;
 1 SqlCommand myconn = new SqlCommand("select * from v_economy2_comidd where eid=" + Request.QueryString["eid"] + "", conn);
 2 
 3 conn.Open();
 4 
 5 SqlDataReader rd = myconn.ExecuteReader();
 6 
 7 rd.Read();
 8 
 9 Lbyear1.Text = rd["year1"].ToString();
10 
11 Lbmonth1.Text = rd["month1"].ToString();
12 
13 Lbcom_name.Text = rd["com_name"].ToString();
14 
15 rd.Close();
16 
17 conn.Close();

二、DataAdapter

 1  string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
 2         SqlConnection sqlconn = new SqlConnection(sqlconnstr);
 3         DataSet ds = new DataSet();
 4         sqlconn.Open();
 5         SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
 6         sqld.Fill(ds, "tabstudent");
 7       
 8         GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
 9         GridView1.DataBind();
10         sqlconn.Close();
11         sqlconn = null;
 1        string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
 2        SqlConnection sqlconn = new SqlConnection(sqlconnstr);
 3        //建立DataSet對象
 4        DataSet ds = new DataSet();
 5        //建立DataTable對象
 6        DataTable dtable;
 7        //建立DataRowCollection對象
 8        DataRowCollection coldrow;
 9        //建立DataRow對象
10        DataRow drow;
11        //打開連接
12        sqlconn.Open();
13        //建立DataAdapter對象
14        SqlDataAdapter sqld = new SqlDataAdapter("select * from Employees", sqlconn);
15        //用Fill方法返回的數據,填充DataSet,數據表取名為“tabstudent”
16        sqld.Fill(ds, "Employees");
17        //將數據表tabstudent的數據復制到DataTable對象
18        dtable = ds.Tables["Employees"];
19        //用DataRowCollection對象獲取這個數據表的所有數據行
20        coldrow = dtable.Rows;
21        //逐行遍歷,取出各行的數據
22        for (int inti = 0; inti < coldrow.Count; inti++)
23        {
24            drow = coldrow[inti];
25            Label1.Text += " 編號:" + drow[0];
26            Label1.Text += " 姓名:" + drow[1];
27            Label1.Text += " 性別:" + drow[2];
28            Label1.Text += " 年齡:" + drow[3];
29            Label1.Text += " 工作日期:" + drow[4] + "<br />";
30        }
31        //執行更新
32        sqld.Update(dtable.GetChanges());
33        //使DataTable保存更新
34        DataTable.AcceptChanges();
35        sqlconn.Close();
36        sqlconn = null;
37  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM