- 浏览: 1764561 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
大家知道,DataSet保存的数据是位于服务器内存里面的原数据库的“副本”。所以用DataSet更新数据的过程就是先对“副本”进行更新,然后在将“原本”更新,按照我的理解就是把“原本”覆盖掉。具体到过程,首先是要找到需要更新的行,然后赋新值,最后更新原数据库。
要找到需要修改的行,比较方便的做法就是根据记录中的某个值进行查找,这样比用“列号”“行号”什么的方便多了。要做到这一点,首先就是要给数据库指定一个主键,然后即可按照主键进行查找。要注意的是这个主键必须要是在程序中指定的,并且这个主键不一定和你数据库原来有的主键一样。
然后就是最后的更新,当然是用DataAdapter的Update()方法借助CommandBuilder来实现,要注意的是,如果你的数据库一开始没有定义主键,那进行更新的时候会出错,返回的错误将是“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。”这是因为我们用的Update()实际上是通过CommandBuilder动态生成sql语句,然后才进行的数据库操作。但如果你在一开始创建DataAdapter时的那个sql语句没有包含有主键的列的话,那CommandBuilder将不会发生作用。这一点是必须要牢记的。
说了这么多,如果有不明白的就看下面的程序,这个是我练习时写的,里面有一些个人的设定,比如记录名什么的,相信大家一看就明白。
<%@import namespace="System.Data"%>
<%@import namespace="System.Data.OleDb"%>
<script language="c#" runat="server">
//定义处理更新的方法
//因为是简单示例,所以这个程序已经简化,直接进行更新
//这里有两个参数,第一个用来查找需要更新的行,第二个是要修改的值
private void up_date(int ids,string names){
//连接字符串,不明白的可以看本专题第二篇文章
string connstr=ConfigurationSettings.AppSettings["color"];
OleDbConnection conn=new OleDbConnection(connstr);
string sql="select * from member";
OleDbDataAdapter ada=new OleDbDataAdapter(sql,conn);//建立一个DataAdapter对象
//这里的CommandBuilder对象一定不要忘了,一般就是写在DataAdapter定义的后面
OleDbCommandBuilder cb=new OleDbCommandBuilder(ada);
DataSet ds=new DataSet();//建立DataSet对象
conn.Open();//打开连接
ada.Fill(ds,"mems");//填充DataSet
conn.Close();//注意及时关闭连接
DataTable dt=ds.Tables["mems"];//建立一个DataTable对象,方便操作
dt.PrimaryKey=new DataColumn[]{dt.Columns["id"]};//建立一个主键
DataRow dr=dt.Rows.Find(ids);//根据参数查找到需要修改的行
dr["name"]=names;//对需要修改的记录赋新值
ada.Update(ds,"mems");//用DataAdapter的Update()方法进行数据库的更新
}
//定义用来响应按钮单击事件的方法
private void b1_Click(object sender,System.EventArgs e){
if(Page.IsValid){
int ids=Int32.Parse(idst.Text);//取得要修改的行的id值,并转换成int类型
string names=namest.Text;//取得新值
up_date(ids,names);//调用我们定义的方法处理
lb1.Text="ok!";
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用dataset更新记录</title>
</head>
<body>
<asp:Label id="lb1" runat="server"/>
<form runat="server">
<asp:TextBox id="idst" runat="server"/>
<asp:RequiredFieldValidator id="rfv1" ControlToValidate="idst" ErrorMessage="error!" runat="server"/>
<asp:TextBox id="namest" runat="server"/>
<asp:RequiredFieldValidator id="rfv2" ControlToValidate="namest" ErrorMessage="error!" runat="server"/>
<asp:Button id="b1" Text="here!!" OnClick="b1_Click" runat="server"/>
</form>
</body>
</html>
补充一点,如果想设多于两个的主键的话,可以用这个
dt.PrimaryKey=new DataColumn[]{dt.Columns["id"],dt.Columns["id2"]};
就是给数组添加两个值,然后使用的时候:
Object[] keyValues=new object[1]; //这里必须实例化否则会向你要初值
//而且需要后面方括号中的这个索引范围
keyValues[0]=(object)key1;
keyValues[1]=(object)key2;
...... 另外一种写法
Object[] keyValues={(object)key1,(object)key2};//以楣举方式赋初值
很明白了吧 :)
发表评论
-
C#正则表达式小结
2008-09-16 15:27 1626地址: http://www.cnblogs.com/m ... -
C#调用ORACLE存储过程返回结果集及函数
2008-07-22 17:49 3057ORACLE段: 首先在ORACLE建立PACKAGE和PA ... -
生成实体类的codesmith模版
2008-07-15 16:35 3186<%@ CodeTemplate Language=&q ... -
数据库开发个人总结(ADO.NET小结)(转)
2008-06-16 11:41 2003一.用SqlConnection连接SQL Server 1. ... -
ADO.NET—读书笔记系列
2008-06-16 11:37 2000ADO.NET概述 一、。NET数据提供程序 ... -
ADO.NET—DataHelper(转)
2008-06-16 11:24 3312using System; using System.Data ... -
一个简单的在程序中构造DataTable
2008-06-16 09:50 2442DataTable dt = new Data ... -
C# 中的委托和事件
2008-06-11 14:53 1125http://www.cnblogs.com/jimmyzha ... -
c#接口和抽象类的区别
2008-06-11 13:58 2611大家都容易把这两者搞 ... -
C#学习之接口
2008-05-26 16:17 1588什么是接口?其实,接 ... -
谈谈C#中的接口
2008-05-26 15:48 1305http://www.cnblogs.com/sifang20 ... -
C#构造函数
2008-05-26 15:27 4480一、C#构造函数?Construct,Function 构造函 ... -
关于构造函数及参数执行顺序说明(c#)
2008-05-26 15:08 3678以前自己对这方面的内容一直比较模糊,只是知道一个大概的顺序,具 ... -
C#继承小结
2008-05-26 14:48 16811、实例化父类时,可以使用new子类,执行构造函数顺序为:先执 ... -
C#修饰符
2008-05-26 14:30 2005符用于限定类型以及类型成员的申明,c#中有13种修饰符,按功能 ... -
C#命名规范
2008-05-26 13:49 2110注记 : Pascal 大小写形式 ... -
C#中处理xml文档
2008-05-26 11:53 1981C#下处理xml是通过XML.NET API类来实现的. XM ... -
在C#使用XML注释
2008-05-26 11:36 2676简介 大多数程序员可能都听说过Java自带的一个工具JavaD ... -
Visual C# 编译器 CSC.EXE 参数详解
2008-05-26 11:29 4721Visual C#是微软公司推出的新一代程序开发语言,Visu ... -
C# 语句-循环语句
2008-05-26 11:08 3278本文将介绍如何使用C#控制语句中的循环语句,本文目的如下: 1 ...
相关推荐
4. 实现数据访问层:使用ADO.NET的类,如SqlConnection、SqlCommand、SqlDataAdapter等,编写代码来连接数据库、执行CRUD操作。 5. 创建业务逻辑层:定义服务接口和实现,封装数据访问层的操作,提供给前端调用。 6....
ADO.NET是微软.NET框架中用于访问数据库的核心组件,它提供了一组全面的接口和类,使得开发者能够高效地处理数据库连接、数据查询、数据更新和数据传输。在本实例中,我们将深入探讨如何使用ADO.NET进行数据库操作,...
- SqlDataAdapter对象:在数据库和DataSet之间传输数据的桥梁。 5. ADO与ADO.NET的区别: - 连接方式:ADO通常使用连续连接,而ADO.NET支持断开连接模式,降低了网络负载。 - 缓存机制:ADO.NET的DataSet提供了...
3. **数据适配器与数据集**:`SqlDataAdapter`是ADO.NET的核心组件,用于填充`DataSet`对象。`Fill`方法用于从数据库中获取数据并填充到数据集中,而`Update`方法则将数据集中的更改写回数据库。 4. **数据读取器**...
第Ⅱ部分 获取连接:使用.NET数据提供程序 第3章 连接数据库 3.1 生成SqlConnection对象 3.2 打开SqlConnection对象 3.3 关闭SqlConnection对象 3.4 自行清除连接 3.5 连接字符串 3.6 连接池 3.7 将SqlConnection...
5. SqlDataAdapter:这是将数据从数据库填充到DataSet或DataTable,以及更新数据库的主要桥梁。它使用SelectCommand、InsertCommand、UpdateCommand和DeleteCommand对象来管理数据操作。 6. DataSet和DataTable:...
7. **数据绑定**:在ASP.NET中,可以使用ADO.NET对象与控件如GridView、FormView等进行数据绑定,实现动态数据显示和用户交互。 8. **异步操作**:在高并发场景下,使用`BeginExecuteNonQuery`和`...
- **对象模型**:ADO.NET引入了`DataSet`、`DataTable`、`DataColumn`等对象,这些对象提供了丰富的数据操作能力,如数据筛选、排序、更新等。 - **数据访问方式**:ADO.NET支持断开式数据访问,即数据可以先加载到...
7. 数据绑定:ADO.NET可以方便地与Windows Forms或ASP.NET控件进行数据绑定,例如,使用`DataGrid`、`DataGridView`控件显示数据库中的数据。 8. 错误处理和异常:在进行数据库操作时,应捕获并处理可能抛出的`...
4. 数据适配器(SqlDataAdapter,OleDbDataAdapter,OdbcDataAdapter):数据适配器是数据连接和数据集之间的桥梁,它用于填充DataSet对象,或者将DataSet中的更改同步回数据库。 5. 数据集(DataSet)和数据表...
#### 五、数据更新 - **Update Command**:定义如何将更改应用回数据库的SQL语句或存储过程。 - **Update Method**:使用DataAdapter的`Update`方法将更改写回到数据库。 - **RowState**:表示DataRow的状态,如...
- 存储机制:ADO的Recordset对象通常代表单一表,而ADO.NET的DataSet对象可以包含多个DataTable,模拟了数据库中的多表关系。 - 在线与离线:ADO的Recordset需要实时保持与数据库的连接,而ADO.NET的DataSet可以在...
- ADO.NET是Microsoft开发的数据访问技术,用于在.NET Framework应用程序中访问关系型数据库和其他数据源。 - 组成部分包括`SqlConnection`、`SqlCommand`、`SqlDataAdapter`、`DataSet`等对象。 7. **熟悉ADO...
2. 数据适配器:`SqlDataAdapter`是数据访问的桥梁,它可以填充`DataSet`,也可以更新数据库。 3. 数据集:`DataSet`作为内存中的数据容器,存储从数据库检索的数据。 4. 数据操作:`SqlCommand`类用于执行SQL命令,...
- **ASP.NET数据库编程**:针对ASP.NET应用,介绍如何使用ADO.NET进行基本的数据库操作,如数据读取、插入、更新和删除等。 #### 六、总结 通过上述知识点的梳理,我们可以看出ADO.NET不仅仅是一种数据访问技术,更...
4. **数据适配器和数据集**:使用SqlDataAdapter对象填充DataSet,将数据库中的数据加载到内存中。在不连接数据库的情况下,可以通过DataSet进行数据操作,然后使用DataAdapter的Update方法将更改同步回数据库。 5....
5. **数据适配器和数据集**: `SqlDataAdapter`是ADO.NET中的一个重要组件,它用于填充`DataSet`或更新数据库。考生需了解如何配置适配器,设置其`SelectCommand`和`UpdateCommand`,以及如何使用`Fill()`方法填充...
9. **数据绑定**:ADO.NET数据集可以轻松地与Windows Forms或ASP.NET控件绑定,实现数据展示和用户交互。 以上是ADO.NET数据库连接的基本概念和使用方式,实际应用中还可能涉及更多复杂场景,如分页查询、批量插入...
它负责将SQL Server数据读取到DataSet中,或反之将DataSet中的数据更新回SQL Server数据库。使用`SqlDataAdapter`时,需要定义一个`SqlCommand`对象来执行SQL语句,然后使用`SqlDataAdapter.Fill`方法将数据加载到...
通过ADO.NET,我们可以使用DataSet、DataTable和DataRow等对象来构建一个离线数据集,模拟数据库中的表结构,从而处理和操作学生数据。同时,可以使用DataAdapter来连接数据库,执行SQL查询以获取或更新学生信息。 ...