を介してシングルを正しく埋めるDataSet
with があります。DataTable
DataRow
TableAdapter
次のようなコードを使用して、DataRow からデータを取得できます。
dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];
type の DataFile という別の列がありますvarbinary(max)
。
上記と同じ列のデータを取得しようとすると、DataRow
何も得られません。
byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];
この場所にブレーク ポイントを配置すると、dataFileDataRow を調べ、ItemArray プロパティを調べると、バイナリ データが ItemArray の 5 番目の位置にあることがわかります。
インデックスを使用して ItemArray に直接アクセスしようとしましたが、バイト配列が fileFromDatabase 変数にコピーされていません。
fileFromDatabase をウォッチに追加すると、次のエラーが発生することにも気付きました。
「名前 'fileFromDatabase' は現在のコンテキストに存在しません」
実行はまだ fileFromDatabase の定義と同じブロック内にあるため、それがどのように文脈から外れているのかわかりません。
Visual Studio の構成を Debug ではなく Release に設定しました。これにより、fileFromDatabase を調べようとしたときに探していたリアルタイムのデバッグ情報が表示されませんでした。リリースからデバッグに切り替えた後、ウォッチで変数を確認できるようになり、上記のコードが正しく機能していることを確認できます。