C# SQL Server Data Types 등가
다음 SQL Server 데이터 타입의 경우 C#에서 대응하는 데이터 타입은 무엇입니까?
정확한 수치
bigint
numeric
bit
smallint
decimal
smallmoney
int
tinyint
money
대략적인 숫자
float
real
일시
date
datetimeoffset
datetime2
smalldatetime
datetime
time
문자열
char
varchar
text
유니코드 문자열
nchar
nvarchar
ntext
이진 문자열
binary
varbinary
image
기타 데이터 유형
cursor
timestamp
hierarchyid
uniqueidentifier
sql_variant
xml
table
(출처: MSDN)
SQL Server 2005용입니다.SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 및 SQL Server 2014에 대한 테이블의 업데이트된 버전이 있습니다.
[ SQL Server Data Types ]와 [Thes]를 참조해 주세요.NET Framework 등가물
다음 표에 Microsoft SQL Server 데이터 유형 및 시스템 내 SQL Server 공용 언어 런타임(CLR)에 해당하는 데이터 유형을 나타냅니다.Microsoft 의 Data.SqlTypes 네임스페이스 및 네이티브 CLR 등가물.NET 프레임워크
SQL 서버 데이터 유형 | CLR 데이터 유형(SQL Server) | CLR 데이터 유형(.NET 프레임워크) |
---|---|---|
바이너리 | SqlBytes, SqlBinary | 바이트[] |
바이너리 | SqlBytes, SqlBinary | 바이트[] |
바이너리(1), 바이너리(1) | SqlBytes, SqlBinary | 바이트, 바이트[] |
이미지 | 없음. | 없음. |
바카 | 없음. | 없음. |
차 | 없음. | 없음. |
nvarchar(1), nchar(1) | SqlChars, SqlString | 문자, 문자열, 문자 [] |
nvarchar | SqlChars, SqlString | 문자열, 문자 [] |
nchar | SqlChars, SqlString | 문자열, 문자 [] |
본문 | 없음. | 없음. |
텍스트 없음 | 없음. | 없음. |
고유 식별자 | SqlGuid | GUID |
행의 반전 | 없음. | 바이트[] |
조금 | SqlBoolean | 부울 |
작은 구멍 | SQLByte | 바이트 |
스몰인트 | SqlInt16 | Int16 |
인트 | SqlInt32 | Int32 |
비긴트 | SqlInt64 | Int64 |
잔돈 | SQLMoney | 십진수 |
돈. | SQLMoney | 십진수 |
숫자 | Sql Decimal | 십진수 |
십진수 | Sql Decimal | 십진수 |
진짜 | SqlSingle | 싱글 |
흘러가다 | SQL Double | 이중 |
같은 시간 | Sql Date Time (Sql Date Time) | 날짜 시간 |
날짜 | Sql Date Time (Sql Date Time) | 날짜 시간 |
sql_module | 없음. | 물건 |
사용자 정의 유형(UDT) | 없음. | 사용자 정의형 |
테이블 | 없음. | 없음. |
커서 | 없음. | 없음. |
타임스탬프 | 없음. | 없음. |
xml | SqlXml | 없음. |
SQL Server 및.넷 데이터 유형 매핑
C# 및 SQL Server 형식에서 변환하는 방법을 찾는 사용자가 있다면 다음과 같이 간단한 구현을 수행합니다.
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;
}
편집: 오탈자 수정
SQL Server 및.NET Framework는 다양한 유형의 시스템을 기반으로 합니다.예를 들어, 입니다.NET Framework Decimal 구조의 최대 배율은 28이지만 SQL Server의 10진수 및 숫자 데이터 유형은 38입니다.자세한 내용은 여기를 클릭하세요!
https://msdn.microsoft.com/en-us/library/cc716729(v=vs.110).aspx
public static string FromSqlType(string sqlTypeString)
{
if (! Enum.TryParse(sqlTypeString, out Enums.SQLType typeCode))
{
throw new Exception("sql type not found");
}
switch (typeCode)
{
case Enums.SQLType.varbinary:
case Enums.SQLType.binary:
case Enums.SQLType.filestream:
case Enums.SQLType.image:
case Enums.SQLType.rowversion:
case Enums.SQLType.timestamp://?
return "byte[]";
case Enums.SQLType.tinyint:
return "byte";
case Enums.SQLType.varchar:
case Enums.SQLType.nvarchar:
case Enums.SQLType.nchar:
case Enums.SQLType.text:
case Enums.SQLType.ntext:
case Enums.SQLType.xml:
return "string";
case Enums.SQLType.@char:
return "char";
case Enums.SQLType.bigint:
return "long";
case Enums.SQLType.bit:
return "bool";
case Enums.SQLType.smalldatetime:
case Enums.SQLType.datetime:
case Enums.SQLType.date:
case Enums.SQLType.datetime2:
return "DateTime";
case Enums.SQLType.datetimeoffset:
return "DateTimeOffset";
case Enums.SQLType.@decimal:
case Enums.SQLType.money:
case Enums.SQLType.numeric:
case Enums.SQLType.smallmoney:
return "decimal";
case Enums.SQLType.@float:
return "double";
case Enums.SQLType.@int:
return "int";
case Enums.SQLType.real:
return "Single";
case Enums.SQLType.smallint:
return "short";
case Enums.SQLType.uniqueidentifier:
return "Guid";
case Enums.SQLType.sql_variant:
return "object";
case Enums.SQLType.time:
return "TimeSpan";
default:
throw new Exception("none equal type");
}
}
public enum SQLType
{
varbinary,//(1)
binary,//(1)
image,
varchar,
@char,
nvarchar,//(1)
nchar,//(1)
text,
ntext,
uniqueidentifier,
rowversion,
bit,
tinyint,
smallint,
@int,
bigint,
smallmoney,
money,
numeric,
@decimal,
real,
@float,
smalldatetime,
datetime,
sql_variant,
table,
cursor,
timestamp,
xml,
date,
datetime2,
datetimeoffset,
filestream,
time,
}
언급URL : https://stackoverflow.com/questions/425389/c-sharp-equivalent-of-sql-server-datatypes
'source' 카테고리의 다른 글
Windows Azure 서비스를 빌드할 때 경로가 너무 깁니다. (0) | 2023.04.21 |
---|---|
C++에서 int를 문자열로 변환하는 가장 쉬운 방법 (0) | 2023.04.21 |
세션 상태 서버에 세션 상태 요청을 할 수 없습니다. (0) | 2023.04.21 |
키보드의 높이를 얻는 방법 (0) | 2023.04.21 |
git stash 적용 버전 (0) | 2023.04.21 |