DataSet 更新到数据库的问题? 谢谢! 我的内存表的DataSet里有10000条记录。我是用DataSet自带的Update把记录更新到数据库速度快呢?还是写个循环一行一行的往数据库里插入呢?主要是一行行的插入,我能在存储过程里做一些对其它表的处理。但是如果用Update,它触发什么事件呢?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 显然Update好,照样可以使用存储过程对其他表进行处理 DataAdapter.Update()与存储过程是各有利弊了。个人觉得存储过程在速度上肯定要比在程序里执行update要快。但是Update明显能减少代码量,便于维护。至于在Update的时候,你可以通过dataAdapter的updating或者是updated事件来控制其他表。SqlDataAdapter custDA = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", nwindConn);// Add handlers.custDA.RowUpdating += new SqlRowUpdatingEventHandler(OnRowUpdating);custDA.RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);// Set DataAdapter command properties, fill the DataSet, and modify the DataSet.custDA.Update(custDS, "Customers");// Remove handlers.custDA.RowUpdating -= new SqlRowUpdatingEventHandler(OnRowUpdating);custDA.RowUpdated -= new SqlRowUpdatedEventHandler(OnRowUpdated);protected static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs args){ if (args.StatementType == StatementType.Delete) { System.IO.TextWriter tw = System.IO.File.AppendText("Deletes.log"); tw.WriteLine("{0}: Customer {1} Deleted.", DateTime.Now, args.Row["CustomerID", DataRowVersion.Original]); tw.Close(); }}protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs args){ if (args.Status == UpdateStatus.ErrorsOccurred) { args.Row.RowError = args.Errors.Message; args.Status = UpdateStatus.SkipCurrentRow; }} DataSet的Update的时候内部执行的是单行插入呢?还是一次全部更新呢? 建议你用存储过程,DataSet的Update 最好不要用,我个人意见 搞不清楚为什么很多人把update跟存储过程对立起来了,Update 跟存储过程并不矛盾,Update的InsertCommand,UpdateCommand...都可以使用存储过程。 <我能在存储过程里做一些对其它表的处理>多表处理:http://blog.csdn.net/chengking/archive/2005/10/03/494717.aspxhttp://blog.csdn.net/chengking/archive/2005/08/26/465874.aspx 还真没用过update,不知道好不好用?学习 求一个三行一列的DIV布局实例 急 .net 连接access数据库 获取gridview中的控件 Gridview编辑状态无法取消,并且出现”未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配“错误 怎么让dataview置顶 请问怎样添加RadioButtonList的JS事件? 老问题了,关于默认按钮的问题 dataset 基本问题 如果开发的程序布署到多台服务器,那个用lock锁类型还有效控并发吗? 请问这个功能怎么实现? 路径的问题,在代码中怎么得到象"~"这样的效果 datagrid 分页会混乱的问题
SqlDataAdapter custDA = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", nwindConn);// Add handlers.
custDA.RowUpdating += new SqlRowUpdatingEventHandler(OnRowUpdating);
custDA.RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);// Set DataAdapter command properties, fill the DataSet, and modify the DataSet.custDA.Update(custDS, "Customers");// Remove handlers.
custDA.RowUpdating -= new SqlRowUpdatingEventHandler(OnRowUpdating);
custDA.RowUpdated -= new SqlRowUpdatedEventHandler(OnRowUpdated);protected static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs args)
{
if (args.StatementType == StatementType.Delete)
{
System.IO.TextWriter tw = System.IO.File.AppendText("Deletes.log");
tw.WriteLine("{0}: Customer {1} Deleted.", DateTime.Now, args.Row["CustomerID", DataRowVersion.Original]);
tw.Close();
}
}protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs args)
{
if (args.Status == UpdateStatus.ErrorsOccurred)
{
args.Row.RowError = args.Errors.Message;
args.Status = UpdateStatus.SkipCurrentRow;
}
}
Update 跟存储过程并不矛盾,Update的InsertCommand,UpdateCommand...都可以使用存储过程。
多表处理:
http://blog.csdn.net/chengking/archive/2005/10/03/494717.aspxhttp://blog.csdn.net/chengking/archive/2005/08/26/465874.aspx