- PR -

ADO.NET について。

1
投稿者投稿内容
うむむ
会議室デビュー日: 2004/03/25
投稿数: 12
投稿日時: 2004-03-29 20:03
C# + ADO.NET をやりはじめていきなりつまずいてしまいました。

あるレコードを読みながら、別のあるレコードの挿入する
処理行いたかったのですが、

この接続に関連付けられている DataReader が既に開いています。この DataReader を最初に閉じる必要があります。

といった例外が発生してしまいます。

プログラムを下記に一部抜粋します。

SqlCommand selectCmd = new SqlCommand(selectSQL, conn);
SqlDataReader rdr = selectCmd.ExecuteReader();

if (!rdr.HasRows) {
try {
SqlCommand insertCmd = new SqlCommand(insertSQL, conn);
insertCmd.ExecuteNonQuery();
} catch (Exception ex) {
Console.WriteLine(ex.ToString());
}
}


insertCmd.ExecuteNonQuery(); の前で rdr.Close() すれば例外は発生しま
せん。

それぞれ別のデータベース接続のインスタンスを作り、そこから
実行するべきなのでしょうか?

アドバイス頂けると幸いです。よろしくお願いします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-29 20:18
DataReaderでデータを読んでいる最中に同じConnectionで更新等はできません。
DataReaderで読みながら更新を行うなら、おっしゃるとおりConnectionを別に作れば良いと思います。

うむむ
会議室デビュー日: 2004/03/25
投稿数: 12
投稿日時: 2004-03-29 20:34
御返事ありがとうございます。
複数の Connection で操作するようにします。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)