我有一个读取和写入SQL Server数据库的DLL。调用模块当前在调用DLL之前建立与数据库的连接。
模块在不同的线程上调用DLL,因此可以同时运行30-40个线程,这些线程都调用了DLL的公共方法。
问题是,对于SQL Server,所有线程使用相同的连接(即从主模块传递的连接,或者每个线程是否应该建立自己的连接)更好?
我目前使用公共连接获得它但是我一直在从某些线程中得到错误"已经有一个与此命令关联的开放DataReader必须首先关闭。"尽管我的所有读者都在monitor.enter / exit块中,所以读者在达到monitor.exit(obj)之前就已经完成了。
答案 0 :(得分:0)
谢谢大家的建议。传递连接字符串并允许线程创建自己的连接似乎已经解决了这个问题。 " DataReader"问题是由我在连接上创建一个读者然后否定使用它...嘿嘿......