Mapowanie danych parametru CLR

The following table lists Microsoft SQL Server data types, their equivalents in the common language runtime (CLR) for SQL Server in the System.Data.SqlTypes namespace, and their native CLR equivalents in the Microsoft .NET Framework.

Typ danych programu SQL Server

Typ (w System.Data.SqlTypes lub Microsoft.SqlServer.Types)

Typ CLR danych (.NET Framework)

bigint

SqlInt64

Int64, Nullable<Int64>

binary

SqlBytes, SqlBinary

Byte[]

bit

SqlBoolean

Boolean, Nullable<Boolean>

char

Brak

Brak

cursor

Brak

Brak

date

SqlDateTime

DateTime, Nullable<DateTime>

datetime

SqlDateTime

DateTime, Nullable<DateTime>

datetime2

Brak

DateTime, Nullable<DateTime>

DATETIMEOFFSET

None

DateTimeOffset, Nullable<DateTimeOffset>

decimal

SqlDecimal

Decimal, Nullable<Decimal>

float

SqlDouble

Double, Nullable<Double>

geography

SqlGeography

SqlGeographyjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack.

Brak

geometry

SqlGeometry

SqlGeometryjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack.

Brak

hierarchyid

SqlHierarchyId

SqlHierarchyIdjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack.

Brak

image

Brak

Brak

int

SqlInt32

Int32, Nullable<Int32>

money

SqlMoney

Decimal, Nullable<Decimal>

nchar

SqlChars, SqlString

String, Char[]

ntext

Brak

Brak

numeric

SqlDecimal

Decimal, Nullable<Decimal>

nvarchar

SqlChars, SqlString

SQLCharsjest lepsze dopasowanie dla transferu danych i dostęp, i SQLString jest lepsze dopasowanie do wykonywania operacji ciąg.

String, Char[]

nvarchar(1), nchar(1)

SqlChars, SqlString

Char, String, Char[], Nullable<char>

real

SqlSingle

Single, Nullable<Single>

rowversion

Brak

Byte[]

smallint

SqlInt16

Int16, Nullable<Int16>

smallmoney

SqlMoney

Decimal, Nullable<Decimal>

sql_variant

Brak

Object

table

Brak

Brak

text

Brak

Brak

time

Brak

TimeSpan, Nullable<TimeSpan>

timestamp

Brak

Brak

tinyint

SqlByte

Byte, Nullable<Byte>

uniqueidentifier

SqlGuid

Guid, Nullable<Guid>

User-defined type(UDT)

Brak

Tej samej klasy, którą jest powiązany Typ zdefiniowany przez użytkownika w tym samym zestawie lub wirtualny plik dziennika zależnego.

varbinary

SqlBytes, SqlBinary

Byte[]

varbinary(1), binary(1)

SqlBytes, SqlBinary

byte, Byte[], Nullable<byte>

varchar

Brak

Brak

xml

SqlXml

Brak

Automatyczna konwersja typu danych z parametry wyjściowe

Metoda CLR zwraca informacje do kodu wywołującego lub programu przez oznaczenie parametru wejściowego z out Modyfikator (Microsoft Visual C#) lub <Out()> ByRef (Microsoft Visual Basic), jeśli parametr wejściowy jest typu CLR w System.Data.SqlTypes obszaru nazw, a program wywołujący określa jego odpowiednik typ danychSQL Server jako parametr wejściowy, konwersja typu zostanie automatycznie, gdy metoda CLR zwraca typ danych.

Na przykład, następujący procedura składowana CLR ma parametr wejściowy SqlInt32 typu CLR, oznaczony out (C#) lub <Out()> ByRef (Visual Basic):

   [Microsoft.SqlServer.Server.SqlProcedure]
   public static void PriceSum(out SqlInt32 value)
   { … }
    <Microsoft.SqlServer.Server.SqlProcedure> _
    Public Shared Sub PriceSum( <Out()> ByRef value As SqlInt32)
    …
    End Sub

Po wirtualny plik dziennika jest wbudowana i utworzone w bazie danych, procedura składowana jest tworzona w SQL Server z następującego języka Transact-SQL, która określa SQL Server typu danych int jako parametr wyjściowy:

CREATE PROCEDURE PriceSum (@sum int OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum

Gdy procedura składowana CLR jest nazywany SqlInt32 Typ danych jest automatycznie konwertowany na int Typ danych i zwrócone do programu wywołującego.

Nie wszystkie typy danych CLR może automatycznie konwertowane na ich odpowiedniki SQL Server danych typów za pomocą parametru wyjściowego.W poniższej tabela przedstawiono te wyjątki.

Typ CLR danych (SQL Server)

Typ danych programu SQL Server

Decimal

Smallmoney

SqlMoney

Smallmoney

Decimal

pieniądze

DateTime

smalldatetime

SQLDateTime

smalldatetime