web-dev-qa-db-fra.com

Quel est l'équivalent de bigint en C #?

Qu'est-ce que je suis censé utiliser pour gérer une valeur en C #, qui est bigint pour une base de données SQL Server?

192
Asad Butt

Cela correspond à long (ou Int64), un entier de 64 bits.

Même si le nombre de la base de données est suffisamment petit et que vous utilisez accidentellement un Int32, etc., tout ira bien. Mais le Int64 le tiendra définitivement.

Et l'erreur que vous obtenez si vous utilisez quelque chose de plus petit et la taille complète est nécessaire? n débordement de pile! Yay!

318
Patrick Karcher

Int64 mappe directement à BigInt.

Source

54
ChaosPandion

Je viens d'avoir un script qui a renvoyé la clé primaire d'un insert et utilisé un

SELECT @@identity

sur ma clé primaire bigint, et j’obtiens une erreur de conversion avec long - c’est pourquoi j’ai commencé cette recherche. La réponse correcte du moins dans mon cas est que le type renvoyé par cette sélection est NUMERIC, ce qui équivaut à un type décimal. L'utilisation d'un long provoquera une exception de distribution.

C'est l'une des raisons pour vérifier vos réponses dans plusieurs recherches Google (ou même sur Stack Overflow!).

Pour citer un administrateur de base de données qui m'a aidé:

... BigInt n'est pas identique à INT64, peu importe à quel point ils se ressemblent. Une partie de la raison est que SQL convertira fréquemment Int/BigInt en numérique dans le cadre du traitement normal. Ainsi, lorsqu'il passe à OLE ou à .NET, la conversion requise est NUMERIC to INT.

Nous ne le remarquons pas souvent puisque la valeur imprimée est identique. "

10
Robb Sadler

Vous pouvez utiliser long type ou Int64

5
user5095242

Utilisez un long type de données.

4
Otávio Décio

Je pense que l'équivalent est Int64

2
John Boker

int dans SQL mappe directement vers int32 également connu sous le nom de type primitif, à savoir int dans C # alors que

bigint dans Sql Server mappe directement sur int64 également connu sous le nom de type primitif c'est-à-dire long dans C #

Une conversion explicite si biginteger en entier a été défini ici

1
Technacron