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的作用是在物理存储模式的数据 ...
随机推荐
- Java Observer接口和Observable类实现观察者模式
对于观察者模式,其实Java已经为我们提供了已有的接口和类.对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: package java.util; public ...
- eclipse 查看变量或方法在什么地方被调用的快捷键和快速显示方法入参提示信息
为了用eclipse写代码的时候,不用方向键移动光标,可以设置如下快捷键, Line Up:Alt+i 光标向上 Line Down:Alt+k 光标向下 Line Start:Alt+u 移到 ...
- ifconfig 中的 eth0 eth0:1 eth0.1 与 lo
1. eth0 eth0:1 eth0.1 eth0 eth0:1 和eth0.1三者的关系对应于物理网卡.子网卡.虚拟VLAN网卡的关系:物理网卡:物理网卡这里指的是服务器上实际的网络接口设备,这里 ...
- Ubuntu16.04首次root登录设置
一.首次登录root模式设置 当第一次安装并登录Ubuntu16.04系统时,系统默认只能使用guest模式登录.登录系统后,在图像界面的右上方的系统设置中可转换为普通用户模式. 在普通登录模式下,经 ...
- thinkcmf 5关闭后台验证码
控制器修改 D:\cmf\thinkcmf\app\admin\controller\PublicController.php 注释 /* $captcha = $this->request-& ...
- I - The lazy programmer 贪心+优先队列
来源poj2970 A new web-design studio, called SMART (Simply Masters of ART), employs two people. The fir ...
- hdu 1704 Rank (floyd闭包)
Rank Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Linux 下挂载新硬盘方法
Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息. 1.关闭服务器加上新硬盘 2.启动服务器,以r ...
- [No0000D1]WPF—TreeView无限极绑定集合形成树结构
1.如图所示:绑定树效果图 2.前台Xaml代码: <Window x:Class="WpfTest.MainWindow" xmlns="http://schem ...
- servlet 执行顺序
public class TestServelt { public static void main(String[] args) { ChildServlet childServlet = new ...