![]() |
| 编程社区 » C#编程 » 请各位指点一下,vs2003C#中,for循环使用ExecuteNonQuery(); |
请各位指点一下,vs2003C#中,for循环使用ExecuteNonQuery(); |
III_dont_know |
发表:
|
后面的那种。
能详细说明一下,为什么吗?谢谢
连接数据库! 当然是连接越少越好, 节省资源!
明显循环里代码越少越好
后面的好,对数据库的打开关闭放循环外面,使程式更优化。
本人觉得这就好像开汽车,频繁的启动、刹车、启动、刹车、启动、刹车是很废油的,对汽车本身的磨损也越大,如果不是像F1赛车道那样的路面而又是短距离的话,那么建议一脚踩到底。也就是说后面的方法相对好一点。
**************个人见解,实属扯淡,仅供参考,学习+UP!*************
肯定是写在循环外的啊,要不执行一次就关闭数据库连接了,以后的都不会执行,所以也就无法起到For循环的作用了。
应该写在循环外,如果写在循环内,那么你是一次循环要建立一个连接,执行完毕,然后关闭连接,那不是浪费资源吗?
在第一部分的程序中每一个sql语句都要执行一次数据库的连接,而这种连接系统维护了一个对象池。每一个连接都先从对象池中取出,如果对象池中没有将创建新对象,并加入对象池。而对象池中的无用对象需要一定的时间后才能释放。所以如果你在短时间内使用的连接很多的话,就有可能造成对象池满员。你再需要连接的话就需要等待释放,而你等待的时间远比释放的时间短,这时系统就会告诉你连接超时,系统抛出异常了。第二种方法好些。当然也可以考虑用c#提供的xml来批量插入。
个人意见,仅供参考。
循环外,
防在循环里面,你每次循环都要打开关闭数据库连接,很费资源
conn.Open()与conn.Close()应该写在循环,还是应该写在循环内呀???
out
当然循环外,放在里边,打开又关闭,性能有问题啊...
| 编程社区 2008 浙ICP备09013498号 |
| © TinyBBS.cn |
| 编程好站连接:codeproject sf.net codeplex |