ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
ADO.NET中的多数据表操作浅析—修改
ADO.NET中的多数据表操作浅析—修改



作者:郑佐??????? 2004-8-5





三、更新数据集



首先需要说明的是我这里去掉了Order Details表,对两个表的操作只是其中的几个字段。下面是窗体界面:







图3-1



单选框用来选择不同的更新方法。



在DataAccess类中增加两个类成员变量:



???? private SqlDataAdapter _customerDataAdapter; //客户数据适配器



???? private SqlDataAdapter _orderDataAdapter; //订单数据适配器



?



customerDataAdapter在构造函数中的初始化为



//实例化_customerDataAdapter



SqlCommand selectCustomerComm = new SqlCommand("GetCustomer",_conn);



selectCustomerComm.CommandType = CommandType.StoredProcedure;



selectCustomerComm.Parameters.Add("@CustomerID",SqlDbType.NChar,5,"CustomerID");



????????



SqlCommand insertCustomerComm = new SqlCommand("AddCustomer",_conn);



insertCustomerComm.CommandType = CommandType.StoredProcedure;



insertCustomerComm.Parameters.Add("@CustomerID",SqlDbType.NChar,5,"CustomerID");



insertCustomerComm.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40,"CompanyName");



insertCustomerComm.Parameters.Add("@ContactName",SqlDbType.NVarChar,30,"ContactName");



?



SqlCommand updateCustomerComm = new SqlCommand("UpdateCustomer",_conn);



updateCustomerComm.CommandType = CommandType.StoredProcedure;



updateCustomerComm.Parameters.Add("@CustomerID",SqlDbType.NChar,5,"CustomerID");



updateCustomerComm.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40,"CompanyName");



updateCustomerComm.Parameters.Add("@ContactName",SqlDbType.NVarChar,30,"ContactName");



?????????????



SqlCommand deleteCustomerComm = new SqlCommand("DeleteCustomer",_conn);



deleteCustomerComm.CommandType = CommandType.StoredProcedure;



deleteCustomerComm.Parameters.Add("@CustomerID",SqlDbType.NChar,5,"CustomerID");



?



_customerDataAdapter = new SqlDataAdapter(selectCustomerComm);



_customerDataAdapter.InsertCommand = insertCustomerComm;



_customerDataAdapter.UpdateCommand = updateCustomerComm;



_customerDataAdapter.DeleteCommand = deleteCustomerComm;



?



上面的代码完全可以用设计器生成,觉得有些东西自己写感觉更好,不过代码还是很多。



对于_orderDataAdapter的初始化同上面的差不多,这里我们只看订单增加的处理,下面是存储过程:



CREATE PROCEDURE? AddOrder



(



???? @OrderID INT OUT,



???? @CustomerID NCHAR(5),



???? @OrderDate DATETIME



)



AS



INSERT INTO Orders



(



???? CustomerID ,



???? OrderDate



)



VALUES



(



???? @CustomerID ,



???? @OrderDate



)



--SELECT @OrderID = @@IDENTITY



SET @OrderID = SCOPE_IDENTITY()



GO



?



OrderID自动增长值的获取通过输出参数来完成,这个相当不错,如果使用SqlDataAdapter.RowUpdated事件来处理那效率会很低。



对insertOrderComm对象的定义为:



SqlCommand insertOrderComm = new SqlCommand("AddOrder",_conn);



insertOrderComm.CommandType = CommandType.StoredProcedure;



insertOrderComm.Parameters.Add("@OrderID",SqlDbType.Int,4,"OrderID");



insertOrderComm.Parameters["@OrderID"].Direction = ParameterDirection.Output;



insertOrderComm.Parameters.Add("@OrderDate",SqlDbType.DateTime,8,"OrderDate");



insertOrderComm.Parameters.Add("@CustomerID",SqlDbType.NChar,5,"CustomerID");



?



在实现数据的更新方法之前我们先来明确一些更新逻辑:



对于标记为删除的行,先删除订单表的数据,再删除客户表的数据;



对于标记为添加的行,先添加客户表的数据,再添加订单表的数据。



?



(1)实现用获取修改过的D
 
 
本站关键词:
|网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广||网站建设 东莞|网页设计 东莞|东莞国际域名注册|东莞国内域名|网页空间申请 东莞|东莞软件公司|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有