Megosztás a következőn keresztül:


SQL Server adattípus-leképezések

Az SQL Server és a .NET-keretrendszer különböző típusú rendszereken alapulnak. A .NET-keretrendszer Decimal struktúrának például 28-ra van maximális skálája, míg az SQL Server decimális és numerikus adattípusai maximális 38-ra vannak skálázva. Az adatok olvasása és írása során az adatintegritás fenntartása érdekében az SqlDataReader SQL Server–specifikus típusú elérő metódusokat tesz elérhetővé, amelyek System.Data.SqlTypes objektumokat adnak vissza, valamint elérő metódusokat, amelyek .NET-keretrendszer típusú objektumokat adnak vissza. Mind az SQL Server-típusok, mind a .NET-keretrendszer típusok enumerációkkal vannak ábrázolva a DbType és SqlDbType osztályokban, amelyeket a SqlParameter adattípusok megadásakor használhat.

Az alábbi táblázat a következtetett .NET-keretrendszer típust, a DbType felsorolásokat és a lekérdező metódusokat mutatja be a SqlDataReader.

SQL Server adatbázismotor típusa .NET-keretrendszer típusa SqlDbType enumerálás SqlDataReader SqlTypes típusú tartozék DbType enumerálás SqlDataReader DbType típusú tartozék
bigint Int64 BigInt GetSqlInt64 Int64 GetInt64
bináris Bájt[] VarBinary GetSqlBinary Binary GetBytes
egy kicsit logikai Bit GetSqlBoolean Boolean GetBoolean
char Sztring

Karakter[]
Char GetSqlString AnsiStringFixedLength,

String
GetString

GetChars
dátum 1

(SQL Server 2008 és újabb verziók)
Dátum/idő Date 1 GetSqlDateTime Date 1 GetDateTime
datetime Dátum/idő DateTime GetSqlDateTime DateTime GetDateTime
datetime2

(SQL Server 2008 és újabb verziók)
Dátum/idő DateTime2 Egyik sem DateTime2 GetDateTime
dátum-idő eltolás

(SQL Server 2008 és újabb verziók)
IdőpontEltérés (DateTimeOffset) DateTimeOffset Nincs DateTimeOffset GetDateTimeOffset
decimális Decimális Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM attribútum (varbinary(max)) Bájt[] VarBinary GetSqlBytes Binary GetBytes
float Kétszeres Float GetSqlDouble Double GetDouble
kép Bájt[] Binary GetSqlBinary Binary GetBytes
int Int32 Int GetSqlInt32 Int32 GetInt32
pénz Decimális Money GetSqlMoney Decimal GetDecimal
nchar Sztring

Karakter[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntext Sztring

Karakter[]
NText GetSqlString String GetString

GetChars
Numerikus Decimális Decimal GetSqlDecimal Decimal GetDecimal
nvarchar Sztring

Karakter[]
NVarChar GetSqlString String GetString

GetChars
valós Egyes Real GetSqlSingle Single GetFloat
sorszámverzió Bájt[] Timestamp GetSqlBinary Binary GetBytes
smalldatetime Dátum/idő DateTime GetSqlDateTime DateTime GetDateTime
smallint Int16 SmallInt GetSqlInt16 Int16 GetInt16
aprópénz Decimális SmallMoney GetSqlMoney Decimal GetDecimal
sql_variant (SQL adatbázis típus) 2. objektum Variant GetSqlValue 2 Object GetValue 2
SMS Sztring

Karakter[]
Text GetSqlString String GetString

GetChars
Idő

(SQL Server 2008 és újabb verziók)
időtartam Time Nincs Time GetTimeSpan
timestamp Bájt[] Timestamp GetSqlBinary Binary GetBytes
tinyint Bájt TinyInt GetSqlByte Byte GetByte
egyedi azonosító GUID UniqueIdentifier GetSqlGuid Guid GetGuid
varbinary Bájt[] VarBinary GetSqlBinary Binary GetBytes
varchar Sztring

Karakter[]
VarChar GetSqlString AnsiString, String GetString

GetChars
XML Xml Xml GetSqlXml Xml Nincs

1 A(z) SqlParameterDbType tulajdonságát nem lehet SqlDbType.Date értékre állítani.
2 Használjon egy adott típusú tartozékot, ha ismeri a mögöttes típust sql_variant.

Az SQL Server dokumentációja

Az SQL Server adattípusairól további információt az Adattípusok (Transact-SQL) című témakörben talál.

Lásd még