当前位置:编程学习 > C#/ASP.NET >>

关于DataReader问题,求大神指导

因为要不断的读取数据库,所以方法是在线程里面执行的,线程执行的时间间隔是1000ms。数据库是远程访问的。

问题出现了:由于数据库是远程访问的,如果出现网络延迟,第一次的DataReader还没有关闭。第二次又开始执行了。导致不停的出现:There is already an open DataReader associated with this Connection which must be closed first.

望各位大侠指导下,该怎么处理! 小弟先谢过了。 --------------------编程问答-------------------- 你可以采用断开式数据库连接,DataReader读取数据库期间必须保证数据库的正常连接 --------------------编程问答-------------------- 一次读入dataset里,然后从dataset里取 --------------------编程问答--------------------
引用 1 楼 Return_false 的回复:
你可以采用断开式数据库连接,DataReader读取数据库期间必须保证数据库的正常连接


但是,读取的数据并不是用做显示的,是要及时更新数据的。断开式连接能满足吗? --------------------编程问答-------------------- 你试一下使用SqlDataAdapter方式读取数据

private static string strConn = ConfigurationManager.ConnectionStrings["SQLLSB2008"].ConnectionString;
 2    private static SqlConnection myConn = null;
 3
 4    private static SqlDataAdapter myAdapter = new SqlDataAdapter();
 5    private static SqlCommand myCmd = new SqlCommand();
 6    private static DataTable myTable = new DataTable();
 7
 8
 9public static DataTable returnDataTable(string mySql, SqlParameter[] parameters)
10    {
11        myConn = new SqlConnection(strConn);
12        using (myCmd = new SqlCommand(mySql, myConn))
13        {
14            try
15            {
16                myCmd.Parameters.AddRange(parameters);
17                myAdapter = new SqlDataAdapter(myCmd);
18                myTable.Clear();
19                myAdapter.Fill(myTable);
20            }
21            catch
22            {
23                connClose();
24            }
25            finally
26            {
27                connClose();
28            }
29        }
30        return myTable;
31    }
--------------------编程问答-------------------- 你用一个全局变量控制,每去读取的时候判断上一次读取是否已经完成如果true则执行这次的操作,否则return;
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,