我有一個服務,不斷寫入數據在一個單獨的線程到SQL數據庫。現在從同一服務,如果我想從同一張表讀取,因爲我已經寫入它,我得到這個例外:已經有一個與此命令關聯的開放DataReader,它必須先關閉。 所以任何人都可以幫助我如何同時做到這一點?同時讀取和寫入數據到sql服務器
這裏是我的代碼讀取數據:
公文集READDATA(查詢字符串) {
{
_result = new Collection<string[]>();
string[] tempResult;
SqlDataReader _readerRead;
using (_command = new SqlCommand(query, _readConnection))
{
_readerRead = _command.ExecuteReader();
while (_readerRead.Read())
{
tempResult = new string[4];
tempResult[0] = _reader[0].ToString();
tempResult[1] = _reader[1].ToString();
tempResult[2] = _reader[2].ToString();
tempResult[3] = _reader[3].ToString();
_result.Add(tempResult);
//Console.WriteLine("Name : {0} Type : {1} Value : {2} timestamp : {3}", _reader[0], _reader[1], _reader[2], _reader[3]);
}
if (_readerRead != null)
{
_readerRead.Close();
}
_readConnection.Close();
return _result;
}
}
}
,在這裏它是寫它:
public void WriteData(Collection<TagInfo> tagInfoList)
{
int i = 0;
for (i = 0; i < tagInfoList.Count; i++)
{
using(_command = new SqlCommand(insert statement here)
{
_command.Parameters.AddWithValue("Name", tagInfoList[i].Name);
_command.Parameters.AddWithValue("Type", tagInfoList[i].TagType);
_command.Parameters.AddWithValue("Value", tagInfoList[i].Value);
_reader = _command.ExecuteReader();
if (_reader != null)
{
_reader.Close();
}
}
}
}
您是否正在使用1個連接進行讀寫? –
目前爲止你有什麼代碼? –
顯示一些代碼請 –