Pergunta

Eu tenho um DataSet com um DataTable que preenche corretamente um único DataRow através de um TableAdapter.

Eu sou capaz de extrair dados de DataRow com código como este:

dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];

Eu tenho uma outra coluna chamada DataFile do tipo varbinary(max).

Quando tento extrair dados dessa coluna do mesmo DataRow como acima eu recebo nada.

byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];

Se eu colocar um ponto de ruptura neste local, eu posso olhar para o dataFileDataRow, olhar para a propriedade ItemArray e ver que os dados binários está sentado na posição 5 no ItemArray.

acesso

Eu tentei o ItemArray diretamente através do seu índice, mas a matriz de bytes não está sendo copiado para a variável fileFromDatabase.

Tenho notado também que a adição de fileFromDatabase para meu relógio produz este erro:

"O nome 'fileFromDatabase' não existe no contexto atual"

A execução ainda está no mesmo bloco como a definição de fileFromDatabase então eu não entendo como seria fora do contexto.

Eu tive conjunto de configuração do Visual Studio para lançamento em vez de depuração. Este foi fazendo-me para não ver as informações de depuração em tempo real que eu estava procurando ao tentar examinar fileFromDatabase. Depois de alternar de lançamento de depuração, eu sou capaz de ver a variável no relógio agora e pode verificar que o código acima está funcionando corretamente.

Foi útil?

Solução

O código acima obras, certifique-se de definir o depurador para compilar para Debug, NÃO Release.

Keith

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top