【SQL】SQL Data Type Mapping to C#

紀錄一下 SQL 對應 C# 的正確資料型態

C#SQL
long = int64bigint
int = int32 = integerint
short = int16smallint
bytetinyint
doublefloat
decimalmoney
byte[]timestamp
GuidUniqueIdentifier

實際在操作上,很常看到 DB 資料型態是 int、smallint、tinyint 的在 C# 直接定義 int 來處理資料,不知道這是不是常態,目前想到的優缺點如下:

  • 優點:如果 DB 欄位資料要異動(ex. tinyint → smallint),程式碼可以不用改
  • 缺點:無法由型態判斷值的範圍,可能埋下隱形 Bug
    ex. DB 資料型態為 tinyint; C# 資料型態 int,如果 value 超出 tinyint 範圍,要將值存進 DB 就會出現 Exception

參考資料:https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-mappings

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *