要疯了。Ado.Net数据更新机制?请各位指一条明路!!!!

fbysss 2003-06-11 03:16:02
http://expert.csdn.net/Expert/topic/1899/1899781.xml?temp=.5641901
看看这个帖子吧。
如果用SQL语句(commandText)来做,倒是可以成功,我不知道Ado.Net更新数据的机制是如何的,我个人总是感觉用commandText写SQL语句还要重新连接一下数据库,如果是循环处理,数据量大会造成开销过大。所以决定采用一条条先‘缓存更新’,最后提交的办法。
我查了几乎所有知道的论坛,居然极少人用我的方法。我晕!为何?我肯定是刚入门,各位,指一条明路吧!
...全文
15 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
solomn_mt 2003-06-22
  • 打赏
  • 举报
回复
我晕,都是好哥们
fbysss 2003-06-22
  • 打赏
  • 举报
回复
分给了。顺便问一个比较晕菜的问题: 什么叫“将问题提前”?
brightheroes 2003-06-16
  • 打赏
  • 举报
回复
呵呵,谢谢搂主,你自己结了吧,我也解决了,呵呵,谢谢搂主,谢谢大家
fbysss 2003-06-12
  • 打赏
  • 举报
回复
这问题我已经解决,其实并不难。有兴趣探讨的同仁,请加我的企业内部QQ:
企业号72869187 企业内部号1346。
QQ:69989853(8:00-20:00都被头儿封了,晚上和周末可以上)
分不知该给谁。
brightheroes(老五):,等有人回答,你满意了说一声,我替你结。
lovered 2003-06-11
  • 打赏
  • 举报
回复
[v]
brightheroes 2003-06-11
  • 打赏
  • 举报
回复
各位大虾,正好我有一个菜鸟问题,因为自己没分了,凑过来问问,搂主不好意思。

问题的根源可能是在oracle 和sql中定义变量的方式不同。
oConn和sConn分别是oracle 和sql数据库的连接。
在sql数据库中:
string newName="IT_Request";
string str="select count(*) from WfProcessDefinition where name=@name";
SqlCommand cm=new SqlCommand(str,sConn);
cm.parameters.Add("@name",newName);
int count=(int)cm.ExecuteScalar();
这段程序的执行没有任何问题,有返回值。

但是在oracle中,我这样试了一下。
string newName="IT_Request";
string str="select count(*) from WfProcessDefinition where name=£ºname" £»
OleDbCommand cm=new OleDbCommand(str,oConn);
cm.parameters.Add(": name",newName);
string count=cm.ExecuteScalar().ToString();
结果非但报错,而且还不能调试,报告说XXXXXX号内存不能read,真是yun死。
请问各位大虾,用c#,对于oracle的sql语句中的参数如何处理啊???你们都是数据库的高手,谢谢了。尤其谢谢搂主。
wn_319 2003-06-11
  • 打赏
  • 举报
回复
up,用dataset开销也很大,最一个数据库连接,多个command对象,更新也可以,
jlhdlj 2003-06-11
  • 打赏
  • 举报
回复
用DATASET不可以吗?如楼上所说,用DataAdapter来Fill DataSet,配合CommandBuilder实现自动更新.
majh5235 2003-06-11
  • 打赏
  • 举报
回复
可用DataAdapter(需要CommandBuilder配合使用)把一个数据集更新到数据库
chsl918 2003-06-11
  • 打赏
  • 举报
回复
‘缓存更新’:这个概念自己做不是不可以但是工作很大。
大型数据都是支持‘缓存更新’这个概念的比如oracle就是,不过管理是oracle自己不是用户管理的,但是用户可以强制写库就是commit命令。
机制是这样的:当你对数据库进行操作的时候数据不是立刻就写到数据文件中的,等一段时间(一般是几秒)统一写到数据库中,如果比较大型的操作,时间比较长,等到全部做完后统一写入到数据文件中去。但是在这大型操作中可以使用commit强制将已经处理的东西写入到数据文件中。
但是access这样的数据库是没有类似的命令的,他是一个操作写一次。(access不能进行大型数据的操作这个也是原因之一)
所谓大型数据是指百万条数据的操作。

所以如果数据库不提供这方面的功能自己要用程序实现实在是比较难!

以上观点仅供参考。

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧