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

DataCommand和DataAdapter的更多相关文章
- .Net中DataAdapter批量插入和更新数据总结
前言 前段时间一直在忙着项目上线,在做项目的同时遇到了一些之前不曾碰到的问题,因为没有经验,只能从网上找一些相关的解决方案,但是网上提供的资料实在是太杂,有的根本不能用,耗时又耗力. 我希望把我这段时 ...
- Ado.net 三[SQL注入,DataAdapter,sqlParameter,DataSet]
1.SQL注入:SQL注入攻击是web应用程序的一种安全漏洞,可以将不安全的数据提交给运用程序,使应用程序在服务器上执行不安全的sql命令.使用该攻击可以轻松的登录运用程序. 例如:该管理员账号密码为 ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
- ADO.NET中的DataSet和DataAdapter
DataSet和DataTable DataSet是一个数据集合,存储在内存中,算是一个临时的数据库. 个人觉得,不是太常用了,DataTable或者直接用List<model>存数据比这 ...
- dataAdapter与dataSet和dataTable的填充
对于dataAdapter与dataSet和dataTable的填充,可以分为1对1,1对n,n对n,3种情况. 以SqlDataAdapter为例. //(1)1对1 SqlDataAdapter ...
- ADO.NET笔记——使用DataAdapter执行增删改操作
相关知识: DataSet中的数据一旦从数据库下载下来,便不再与数据库保持联系.如果修改了DataSet中的数据,需要重新建立连接,并且通过SQL命令将修改更新到数据库去 编写SQL命令往往比较繁琐和 ...
- DataSet与DataAdapter的关系
DataSet 作用:DataSet,DataAdapter读取数据. 问:什么是DataAdapter?答:DataAdapter对象在DataSet与数据之间起桥梁作用 string strCon ...
- asp.net学习之ado.net(无连接模式中的DataAdapter)
原文:asp.net学习之ado.net(无连接模式中的DataAdapter) 在非连接模式下,主要讨论以下对象:DataAdapter. DataAdpater的作用是在物理存储模式的数据 ...
随机推荐
- (原)关于udp的socket发送数据耗时的问题探讨
转载请注明出处:http://www.cnblogs.com/lihaiping/p/6811791.html 本学习笔记,仅用于问题探讨,如有不同,可以讨论. 最近在看流媒体分发服务器的相关代码,其 ...
- php utf8编码字符串的截取
function sub_str($str, $length = 0, $append = true) { $str = trim($str); $strlength = strlen($str); ...
- NuGet Packages are missing,This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.
错误内容 This project references NuGet package(s) that are missing on this computer. Use NuGet Package R ...
- Unity编辑器中分割线拖拽的实现
GUI splitter control How can I make a GUI splitter control, similar to the splitter the console has? ...
- TensorFlow 1.4利用Keras+Estimator API进行训练和预测
Tensorflow 1.4中,Keras作为作为核心模块可以直接通过tf.keas进行调用,但是考虑到keras对tfrecords文件进行操作比较麻烦,而将keras模型转成tensorflow中 ...
- linux中,当执行rpm -e删除一个软件包时,都做了些什么事
问题描述: 今天在通过rpm进行删除软件包时,出现了问题,就引发了我对于rpm包执行删除动作时的一些行为做了思考,之前找了很多的文章,后来想如果有debug日志信息,那么不就都清楚了吗 通过打印rpm ...
- 解决修改sources.list之后update NO_PUBKEY错误
最近鼓捣一个新基于debian的服务器,修改sources.list之后update的时候报类似如下错误: W: GPG error: http://ftp.us.debian.org lenny-p ...
- TimeUnit类中的sleep() 和Thread.sleep()
TimeUnit是什么? TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段 ...
- [VS SVN] VS的SVN插件AnkhSvn
VS的SVN插件AnkhSvn 修改VS配置 将解决方案或项目加入SVN管理
- Bootstrap模态框原理分析及问题解决
最近自学了bootstrap觉得里面模板样式挺好的,就想自己实现实现,不多说了,开始进入正题了 今天就来实现bootstrap里面的模态框弹出效果 首先很简单 实现一个类似于panel的modal 1 ...