Qual é o equivalente a bigint em C#?
-
22-09-2019 - |
Pergunta
O que eu devo usar ao lidar com um valor em C#, que é BIGINT para um banco de dados do SQL Server?
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
.
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];