DataReader.GetFieldType が null を返しました 質問する

DataReader.GetFieldType が null を返しました 質問する

私の DB テーブル レイアウトには、(列インデックス = 4) 型の列が 1 つありますhierarchyid。新しい環境 (XEN サーバーから作成された仮想 Web サーバー) をセットアップしてサイトを実行しようとすると、次の問題が発生しました。

例外メッセージ: DataReader.GetFieldType(4) が null を返しました。例外データ: System.Collections.ListDictionaryInternal

調べてみたところ、すでにいくつかのトピックがあることがわかりました(例えばマイクロソフト)。

しかし、ライブラリを追加してもC:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll、構造体内の db タイプSqlHierarchyIdが認識されないようです。

「DataReader.GetFieldType(4) の例外が null を返しました」というメッセージが引き続き表示されます。

注: VS2010 の C# パッケージを環境 (Windows Server 2008 RC2) にインストールすれば問題は解決しますが、これは純粋に単純な Web サーバーであるため、上司はそれを認めませんでした。

ベストアンサー1

プロジェクトから Microsoft.SQLServer.Types dll を参照し、参照のプロパティで参照を「ローカルにコピー」に設定します。これにより、展開時に Web サイトとともにその DLL がパッケージ化されます。その後、SQL Server データ型を使用するために、Web ボックスにすべての SQL Server をインストールする必要はありません。データ型列を使用していたためgeography、同じエラーが発生したため、Web サイトでこれを行いました。

おすすめ記事