DataCommand和DataAdapter
Posted 腾冲园地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]"; 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
以上是关于DataCommand和DataAdapter的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# dataAdapter.Fill() 和 dataAdapter.Update() 将表的数据从一个数据库传输到另一个数据库的同一个表