1接続に対して1つだけみたいです。メソッドを呼び出す必要があります。終了するまでは使用できません。よって排他的に使用されています。対してはどのコマンドも実行できません。作成することもできません。通報するこの回答へのお礼mahny様回答ありがとうございます。>1接続に対して1つだけみたいです。出来ないという事ですね。DataReaderを使用するなら、DataReaderから別な入れ物にコピーして再度、DataReaderにて取得を行う。18:02DataReaderは1つの接続に対して、1つしかopenできません。接続(SqlConnection)を2つ作るか、別な入れ物にコピーして...かのどちらかではないでしょうか。別な入れ物にコピーする場合は、データセットを使うのがおすすめです。16:30そんなことは無いと思います。'←ここで、エラーとなってしまいます。出来上がっているのにそこにさらにDataReaderオブジェクトを重ねようとしたからじゃないですかね。トランザクション」に関するQ&A:社内Excel共有ブックでの保存トラブル「sql」に関するQ&A:SQLの速度をあげるには・・・お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!全カテゴリから検索このカテゴリから検索Q質問する(無料)このQ&Aを見た人はこんなQ&Aも見ています大人のためのおしりトラブル座談会【PR】おしりの悩みといえば、痔を思い浮かべる方も多いのではないでしょうか。今回は、おしりトラブルに悩む女性3人が集まり座談会を開催しました。Basic(VBA)16文字列の後ろから必要分だけ削除したい。Basic(VBA)19日付型のフィールドに空白を入れる方法を教えてくださいその他(データベース)20「指定されたキャストは有効ではありません。」とエラーが出てしまいます。ASP大人のためのおしりトラブル座談会【PR】おしりの悩みといえば、痔を思い浮かべる方も多いのではないでしょうか。今回は、おしりトラブルに悩む女性3人が集まり座談会を開催しました。Basic(VBA)16文字列の後ろから必要分だけ削除したい。Basic(VBA)19日付型のフィールドに空白を入れる方法を教えてくださいその他(データベース)20「指定されたキャストは有効ではありません。」とエラーが出てしまいます。カスタムコントロール作ってます(VB.NET)。回答数ランキングです。(ADO.NET)いつもお世話になっております。ADO.NETの話なのですが、トランザクションを開始したコネクションオブジェクトでDataAdapterを使ったSELECTと、ExecuteNonQueryを使ったUPDATEを交互に繰り返し行うことはできるでしょうか?現状できていないので可能なのであれば共通関数の見直しが必要かと思っています。いまはSELECTとUPDATEを別のコネクションで行っているのですが、UPDATE後に同じテーブルの該当レコードをSELECTにいくため、デッドロックが発生しています。Aベストアンサー>それにしてもコネクションとトランザクションオブジェクトを別々に>渡してやる必要性がよく理解できません。コネクションオブジェクトから>トランザクションオブジェクトも参照できるのでは?と思うのですが・・・。tranがありました(いつの間にか記述してたみたい)すいません。ExcelVBAや、AccessVBAで作成したプログラムを、VBに移そうと思っています。ネットや本のサンプルを、自分のやりたいことに修正しつつ、一応、動作としては希望通りなのですが、元々VBAで簡易に作ったものだけに、本来なら注意すべきインスタンスの管理などがおざなりになっています。動作は一応正常ですが、果たしてこれで良いのか不安でもありますので質問させていただきます。NEWをループの回数分、繰り返す事になります。プロシージャの中で、ループなどで複数のSQLを発行する場合、記述として正しい作法がありましたら、教えてください。ExcelVBAや、AccessVBAで作成したプログラムを、VBに移そうと思っています。ネットや本のサンプルを、自分のやりたいことに修正しつつ、一応、動作としては希望通りなのですが、元々VBAで簡易に作ったものだけに、本来なら注意すべきインスタンスの管理などがおざなりになっています。動作は一応正常ですが、果たしてこれで良いのか不安でもありますので質問させていただきます。本やサンプルには、複数のSQLを連続で発行するようなものは載って...続きを読むAベストアンサーそれぞれの最後、つまりExecuteNonQuery()の発行後、Dispose()すれば問題ありません。同じインスタンスを利用するならば、2回目以降はCommandTextプロパティに設定されているクエリを変更して発行、その後Dispose()でも良いでしょう。移行ということで、元々問題ないのでしょうが、問題があるようならばプリペアドステートメントによる発行を推奨します。(SQLインジェクション対策)Accessはクエリキャッシュ機構はないでしょうから、パフォーマンスは変わらないでしょうけど。http://msdn.microsoft.com/ja-jp/library/vstudio/yy6y35y8(v=vs.100).aspx他の回答も見るQDataGridViewで指定したセルの値を取得こんにちは。VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。どなたか教えてください。2).ValueMsgBox(Data)みたいな感じで取れないですかね???他の回答も見るQMAX値を条件にデータを取得するには?SQL文で困っています。下記のようなデータがあった場合、それぞれの区分毎に年月が最大(最新)のデータを取得したいです。(実際には1レコードにその他項目があり、それらも取得します。400よろしくお願いします。Aベストアンサーテーブル名をXXXとすると次のようなSQLでよいと思います。他の回答も見るQCloseとDisposeの違いみなさまこんばんわです。2008でコーディングしています。CloseとDisposeの違いについて教えていただきたいのです。)のみに限ったこととしてお話しさせていただきます。しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。すると、きれいにプロセスは終了し、イベントは発生しない模様です。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。変えるとうまくいきました。わけわからなくなってきました。ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。ここで4つの仮説を立ててみました。ありがとうございました。みなさまこんばんわです。2008でコーディングしています。CloseとDisposeの違いについて教えていただきたいのです。)のみに限ったこととしてお話しさせていただきます。しても、プロセスは残り、たとえば、...続きを読むAベストアンサーMe.Close()Me.Dispose()は根本的に違うものです。formについて、Close()メソッドはフォームの表示を終了させるメソッドです。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。>再利用できる、できないの違いDispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。Close()はインスタンスが残っているので、それを利用することができます。ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。変えるとうまくいきました。通常はどちらでもうまくいきます。ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できるShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。呼び出し方ではなく、別の要因が存在するそう思います。併記する必要がある場合があるインスタンスを明示的に破棄したほうがよい場合は多く存在します。Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。これらのメンバは、外部とのやり取りを行うものが多くあります。SQLClientに含まれるようなメンバです。外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。Using構文を使用するのとまったく同じ理由になります。正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。上記のような理由により、Me.Close()Me.Dispose()は両方書いたほうがよいと思います。蛇足ですが、Me.Dispose()Me.Close()はエラーになります。Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。存在しないMeに対してCloseメソッドを要求することはできないためです。Me.Close()Me.Dispose()は根本的に違うものです。formについて、Close()メソッドはフォームの表示を終了させるメソッドです。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。>再利用できる、できないの違いDispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。Close()はインスタンスが残っているので、それを利用することができます。ところが、アプリ...続きを読む他の回答も見るQVB.NETのコンボボックスについてVB6からVB.NETでプログラミングを始めました。コンボボックスのクリアの仕方や設定の仕方、また取り出し方等を教えて下さい。ヘルプも見てみたのですが、よく解りません。Aベストアンサークリアだけだと思ってました。1MsgBox(Me.ComboBox1.Items(i).ToString)Next'完全クリアMe.ComboBox1.Items.Clear()部分クリアMe.ComboBox1.Items.RemoveAt(Index値)他の回答も見るQ【VB】コンボボックスにデータベースから取り出した値を入れたいVB2005です。表題の通りですがやり方がよくわかりません。データベースに接続し、SQLで重複しない値を取り出すところまではできています。rs.EOFCombo1.AddItem.Fields("FieldName")rs.MoveNextLoopVB2005ではどう書くのでしょう?よろしくご教授ください。Sourc...続きを読む他の回答も見るQDataTableから条件を満たした行を別のDatatableへコピーしたいVC#2005とSQLServer2005ExpressEditionでWindowsアプリケーションを作成しています。データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。そこから条件を満たしている行をすべて抽出して同じ型のDataTableにデータをコピーしたいのです。DataTableは2つ用意しています。1つは上記の通りデータをバインドしていますが、もう1つは宣言しただけなのでまだ空っぽの状態です。DataTableにはカラムが3列あり、その中の1列をグループIDとしています。条件としてはグループIDが同じであるということです。やりたいことは条件を満たしている行をすべて抽出して空のデータテーブルにコピーすることです。どなたかご存知の方いらっしゃれば教えてください。INTO文を使ってデータを格納しているのですが、日付の部分がNULLの時、「1900/1/1」が入ってしまいます。そのまま、空白を入れる方法はどうやったらよろしいのでしょうか?TABLE1の内容は番号|内容|日付です。")"の様に書きます。「table」はSQLの予約語です。そのため初期設定などで、「table」をそのままSQL文に使用することは出来ません。これは他のRDBも同様です。SERVERでは[]で括ることで、予約語をオブジェクト名に出来ますが、おすすめは出来ません。ANSI/ISOの標準規格では「"(ダブルクォーテーション)」で括ることで、同様にエラーを回避できます。SERVERでも初期設定でANSI/ISOと同様に「"」で括るモードにすることは出来ますが、それでも予約語である以上何らかの対応は必要です。2008からは[]でくくる必要になったのでしょうかそんなことはないはずです。VBAでACCESSに接続時にエ...SQLの速度をあげるには・・・リモートデスクトップ接続をす...4VBからOracle接続が出来ません。VBAでACCESSに接続時にエ...リモートデスクトップ接続をす...共通モジュールでDBへの接続と...4SQLの速度をあげるには・・・5VBからOracle接続が出来ません。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。