私は現在、管理者が SQL 2008 R2 データベースのいくつかのテーブルを表示し、それらに変更を加えられるようにするプログラムを作成しています。開発用ラップトップでホストされているデータベースでコードを徹底的にテストしましたが、問題は見つかりませんでした。ただし、リモート接続に切り替えると、エラーが発生し始めます。
私が抱えている問題は、データベースからデータを収集しようとすると、列の数しか提供されないことです。クエリをSELECT * FROM table
実行してコントロールに入れるとしますDataGridView
。データを収集するために使用するはSqlDataReader
、選択したテーブルに関係なく、テーブル内のフィールドの正確な数を返します。また、私のコードでは、実際にデータベースにログインしてデータを収集しても問題はありません。ラップトップのローカル データベースをターゲットにしてまったく同じコードを実行すると、そのデータベースからそのテーブルのすべての行が取得されます。
したがって、リモート接続からデータを取得しています。テーブル内の列数のみを取得し、行は取得していません。接続をTCP/IP
有効にし、サーバー ブラウザーを使用しており、SQL とそのプロセスで使用されるすべてのポートがサーバー上で開かれています。
この問題の解決策を持っている人、またはなぜそれが起こっているのかについての理由さえあれば、大歓迎です。ありがとう!
編集、解決済み:まあ、問題が何であるかを理解しました。App.config 接続文字列が 2 文字ずれていて、現在のデータベースの古いコピーからデータを取得していました。そのため、データベースで同じ数の列を取得していましたが、まだデータ テーブルへの書き込みに失敗していました。同じ数の列、異なる列名。そのため、データを割り当てようとしたときに、「productTypeID」(古いデータベース) などではなく、「productType」(新しいデータベース) を探していました。