2013年7月23日 星期二

DataReader 與 Connection 的關係

在資料庫的讀取中,大部分的方法就是
設定 Connection、設定Commander、最後就是用DataReader讀出
不過我在之前完全不知道,為什麼要打開與關閉Connection,
只是照著網路與程式錯誤來配合開關,直到最近,遇到了一個問題

已經開啟一個與這個連接相關的 DataReader,必須先將它關閉。

碰到問題之後上網找解答時,找到了這個
DataReader關閉的問題  --  程式設計俱樂部

我才發現,其實每次執行Commander之後,Connection就會被那個Commander給獨佔,
如果其他Commander想要連結同一個Connection的話,就會顯示錯誤。

這時有幾個方法:
一、新增另一個Connection
二、如果是Select的話,改用DateTable讀取(不用再開啟Connection)
三、每執行完一個指令之後,將Connection關閉再開啟
例如:

Connection.open();
指令一
Connection.close();
Connection.open();
指令二
Connection.close();


不過VS 2012上測試之後,發現這問題似乎解決了...
所以給用VS 2010寫的人一些解決方法。

沒有留言:

張貼留言