C # Tương đương với DataTypes của SQL Server


594

Đối với các kiểu dữ liệu SQL Server sau đây, kiểu dữ liệu tương ứng trong C # sẽ là gì?

Số chính xác

bigint
numeric
bit
smallint
decimal
smallmoney
int
tinyint
money

Số học gần đúng

float
real

Ngày và giờ

date
datetimeoffset
datetime2
smalldatetime
datetime
time

Chuỗi ký tự

char
varchar
text

Chuỗi ký tự Unicode

nchar
nvarchar
ntext

Chuỗi nhị phân

binary
varbinary
image

Các loại dữ liệu khác

cursor
timestamp
hierarchyid
uniqueidentifier
sql_variant
xml
table

(nguồn: MSDN )


1
Tôi nghĩ rằng đây là những gì bạn có thể đang tìm kiếm: Ánh xạ dữ liệu tham số CLR
Andrew Hare

Câu trả lời:


1092

Đây là cho SQL Server 2005 . Có các phiên bản cập nhật của bảng cho SQL Server 2008 , SQL Server 2008 R2 , SQL Server 2012SQL Server 2014 .

Các kiểu dữ liệu máy chủ SQL và các tương đương .NET Framework của chúng

Bảng sau liệt kê các loại dữ liệu Microsoft SQL Server, tương đương của chúng trong thời gian chạy ngôn ngữ chung (CLR) cho SQL Server trong không gian tên System.Data.SqlTypes và tương đương CLR gốc của chúng trong Microsoft .NET Framework.

SQL Server data type          CLR data type (SQL Server)    CLR data type (.NET Framework)  
varbinary                     SqlBytes, SqlBinary           Byte[]  
binary                        SqlBytes, SqlBinary           Byte[]  
varbinary(1), binary(1)       SqlBytes, SqlBinary           byte, Byte[] 
image                         None                          None

varchar                       None                          None
char                          None                          None
nvarchar(1), nchar(1)         SqlChars, SqlString           Char, String, Char[]     
nvarchar                      SqlChars, SqlString           String, Char[] 
nchar                         SqlChars, SqlString           String, Char[] 
text                          None                          None
ntext                         None                          None

uniqueidentifier              SqlGuid                       Guid 
rowversion                    None                          Byte[]  
bit                           SqlBoolean                    Boolean 
tinyint                       SqlByte                       Byte 
smallint                      SqlInt16                      Int16  
int                           SqlInt32                      Int32  
bigint                        SqlInt64                      Int64 

smallmoney                    SqlMoney                      Decimal  
money                         SqlMoney                      Decimal  
numeric                       SqlDecimal                    Decimal  
decimal                       SqlDecimal                    Decimal  
real                          SqlSingle                     Single  
float                         SqlDouble                     Double  

smalldatetime                 SqlDateTime                   DateTime  
datetime                      SqlDateTime                   DateTime 

sql_variant                   None                          Object  
User-defined type(UDT)        None                          user-defined type     
table                         None                          None 
cursor                        None                          None
timestamp                     None                          None 
xml                           SqlXml                        None

2
int trong .NET giống như Int32 trong bảng này, vì vậy nó cũng sẽ là int trong SQL Server.
janrjan Jämte

Loại dữ liệu CLR nào (SQL Server) nên được sử dụng cho shortkhung .Net?
Yogesh Patel

3
@yogeshpatel, short( docs.microsoft.com/en-us/dotnet/csharp/lingu-reference/ọ ) bằng với System.Int16 trong danh sách này. Vì vậy, đó sẽ là smallint trong SQL Server.
janrjan Jämte


7

SQL Server và .NET Framework dựa trên các hệ thống loại khác nhau. Ví dụ, cấu trúc thập phân .NET Framework có tỷ lệ tối đa là 28, trong khi các kiểu dữ liệu số và số thập phân của SQL Server có tỷ lệ tối đa là 38. Nhấp vào Đây là một liên kết ! để biết chi tiết

https://msdn.microsoft.com/en-us/l Library / cc716729 (v = vs.110) .aspx


Bạn có thể vui lòng giải thích tại sao tôi nhận được -1 cho câu trả lời này không ??
Salman

8
Không phải tôi là người đánh giá thấp câu trả lời, nhưng lý tưởng nhất là bạn nên trả lời câu hỏi, không cung cấp liên kết với nó.
Esteban Verbel

6

Trong trường hợp bất kỳ ai đang tìm kiếm các phương thức để chuyển đổi từ / sang định dạng C # và SQL Server, thì đây là một cách thực hiện đơn giản:

private readonly string[] SqlServerTypes = { "bigint", "binary", "bit",  "char", "date",     "datetime", "datetime2", "datetimeoffset", "decimal", "filestream", "float",  "geography",                              "geometry",                              "hierarchyid",                              "image",  "int", "money",   "nchar",  "ntext",  "numeric", "nvarchar", "real",   "rowversion", "smalldatetime", "smallint", "smallmoney", "sql_variant", "text",   "time",     "timestamp", "tinyint", "uniqueidentifier", "varbinary", "varchar", "xml" };
private readonly string[] CSharpTypes    = { "long",   "byte[]", "bool", "char", "DateTime", "DateTime", "DateTime",  "DateTimeOffset", "decimal", "byte[]",     "double", "Microsoft.SqlServer.Types.SqlGeography", "Microsoft.SqlServer.Types.SqlGeometry", "Microsoft.SqlServer.Types.SqlHierarchyId", "byte[]", "int", "decimal", "string", "string", "decimal", "string",   "Single", "byte[]",     "DateTime",      "short",    "decimal",    "object",      "string", "TimeSpan", "byte[]",    "byte",    "Guid",             "byte[]",    "string",  "string" };

public string ConvertSqlServerFormatToCSharp(string typeName)
{
    var index = Array.IndexOf(SqlServerTypes, typeName);

    return index > -1
        ? CSharpTypes[index]
        : "object";
}

public string ConvertCSharpFormatToSqlServer(string typeName)
{
    var index = Array.IndexOf(CSharpTypes, typeName);

    return index > -1
        ? SqlServerTypes[index]
        : null;
}

Chỉnh sửa: sửa lỗi chính tả

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.