242

SQL Serverデータベースにとって重要なC#の値を処理するときに何を使用する必要がありますか?

4

12 に答える 12

402

これは、64ビット整数のlong(またはInt64 )に対応します。

データベースの数がたまたま少なく、誤ってInt32などを使用した場合でも問題ありません。しかし、Int64は間違いなくそれを保持します。

そして、もっと小さいものを使用し、フルサイズが必要な場合に発生するエラーはありますか?スタックオーバーフロー!わーい!

于 2010-01-21T22:44:56.570 に答える
68

Int64に直接マップしBigIntます。

ソース

于 2010-01-21T22:44:26.930 に答える
14

挿入の主キーを返し、

SELECT @@identity

bigintの主キーで、longを使用するとキャストエラーが発生します。これが、この検索を開始した理由です。正解は、少なくとも私の場合、そのselectによって返される型はNUMERICであり、これは10進数型に相当します。longを使用すると、キャスト例外が発生します。

これは、複数のGoogle検索(またはStack Overflow!)で回答を確認する理由の1つです。

私を助けてくれたデータベース管理者を引用するには:

... BigIntは、どれほど似ていてもINT64と同じではありません。その理由の一部は、SQLが通常の処理の一部としてInt/BigIntをNumericに頻繁に変換することです。したがって、OLEまたは.NETに移行する場合、必要な変換はNUMERICからINTになります。

印刷された値は同じように見えるため、あまり気付かないことがあります。

于 2010-09-20T19:10:57.853 に答える
6

長いデータ型を使用してください。

于 2010-01-21T22:44:45.600 に答える
6

タイプlongまたはInt64

于 2015-07-08T17:59:00.170 に答える
2

同等のものはInt64だと思います

于 2010-01-21T22:44:50.993 に答える
0

SQLのintはint32に直接マップされますが、プリミティブ型、つまりC#のintとしても知られています。

SQL Serverのbigintはint64に直接マップされ、プリミティブ型としても知られています。つまり、C#ではlongです。

bigintegerからintegerへの明示的な変換がここで定義されている場合

于 2016-06-14T07:18:31.707 に答える
-1

ほとんどの場合、C#ではlong(int64)です。

于 2020-02-04T10:01:22.073 に答える
-1

データベーステーブルでbigintを使用している場合は、C#でLongを使用できます。

于 2020-05-18T14:26:04.813 に答える
-1

int(64)またはlongDatatypeはBigIntと同等です。

于 2021-02-22T09:11:38.527 に答える
-1

Convert.ToInt64を使用して、DBから返された(bigint)値を変換することができました。

すなわち

var Id = Convert.ToInt64(identityAsTable.Rows[0].Field<object>(0));
于 2021-09-01T15:28:26.680 に答える
-4

DataGridViewに表示されるbigintデータ型を処理していて、このようにしました

something = (int)(Int64)data_reader[0];
于 2014-08-11T14:57:29.177 に答える