У меня есть DataSet
с DataTable
, который правильно заполняет один DataRow
через TableAdapter
.
Я могу получить данные из DataRow с помощью кода, подобного следующему:
dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];
У меня есть еще один столбец с именем DataFile типа varbinary(max)
.
Когда я пытаюсь извлечь данные этого столбца из того же DataRow
, что и выше, я ничего не получаю.
byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];
Если я поставлю точку останова в этом месте, я могу посмотреть в dataFileDataRow, посмотреть в свойство ItemArray и увидеть, что двоичные данные находятся в позиции 5 в ItemArray.
Я пытался получить доступ к ItemArray напрямую, используя его индекс, но байтовый массив не копируется в переменную fileFromDatabase.
Я также заметил, что добавление fileFromDatabase к моим часам приводит к этой ошибке:
"Имя fileFromDatabase" не существует в текущем контексте "
Выполнение все еще находится в том же блоке, что и определение fileFromDatabase, поэтому я не понимаю, как это было бы вне контекста.
У меня была конфигурация Visual Studio для Release вместо Debug. Это заставляло меня не видеть отладочную информацию в реальном времени, которую я искал, когда пытался исследовать fileFromDatabase. После переключения с Release на Debug я теперь вижу переменную в часах и могу убедиться, что приведенный выше код работает правильно.