Pergunta

O que eu devo usar ao lidar com um valor em C#, que é BIGINT para um banco de dados do SQL Server?

Foi útil?

Solução

Que corresponde ao grandes (ou Int64), um número inteiro de 64 bits.

Embora se o número do banco de dados seja pequeno o suficiente e você acidentalmente use um INT32, etc., você ficará bem. Mas o Int64 Definitivamente vai segurá -lo.

E o erro que você recebe se usar algo menor e o tamanho completo é necessário? Um transbordamento de pilha! Yay!

Outras dicas

Int64 mapas diretamente para BigInt.

Fonte

Acabei de ter um script que devolveu a chave primária de uma inserção e usou um

SELECT @@identity

Na minha chave primária Bigint, e recebo um erro de elenco usando muito - foi por isso que iniciei essa pesquisa. A resposta correta, pelo menos no meu caso, é que o tipo retornado por essa seleção é numérico, o que equivale a um tipo decimal. Usar um longo causará uma exceção do elenco.

Este é um motivo para verificar suas respostas em mais de uma pesquisa do Google (ou mesmo no excesso de pilha!).

Para citar um administrador de banco de dados que me ajudou:

... Bigint não é o mesmo que o INT64, não importa o quanto eles sejam parecidos. Parte do motivo é que o SQL freqüentemente converte int/bigint em numérico como parte do processamento normal. Portanto, quando vai para Ole ou .Net, a conversão necessária é numérica para int.

Não costumamos notar, já que o valor impresso parece o mesmo. "

Você pode usar long tipo ou Int64

Use um tipo de dados longo.

Eu acho que o equivalente é int64

int em SQL mapeia diretamente para Int32 também conheço como um tipo primitivo, ie int dentro C# enquanto

bigint no SQL Server Maps diretamente para Int64 também conheço como um tipo primitivo, ie grandes dentro C#

Uma conversão explícita se o biginteger para inteiro tiver sido definido aqui

Eu estava lidando com um tipo de dados bigint a ser mostrado em um DataGridView e o fiz assim

something = (int)(Int64)data_reader[0];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top