J'essaye d'écrire une fonction SQLCLR qui retournera une valeur booléenne Nullable. Si je déclare la fonction comme ceci: public static SqlBoolean? IsTimeZoneDST(SqlString timeZone)
alors j'obtiens une erreur en essayant d'employer l'assemblée en disant que les types pour la valeur de retour ne correspondent pas. Y at-il quelque chose qui me manque ou n'est-il pas possible de retourner un booléen nullable dans ce cas?Fonction SQL CLR pour renvoyer un booléen nullable
1
A
Répondre
1
Tous les types .NET Sql*
ont un champ .Null
(propriété statique) qui crée une nouvelle instance de ce qui être considéré comme une valeur NULL
pour ce type de données dans T-SQL.
En outre, il existe plusieurs autres propriétés et méthodes communes de tous les Sql*
types:
.IsNull
pour tester si la valeur estNULL
aussi loin que T-SQL concerne.Value
renverra le équivalent .NET type de données, comme unString
pourSqlString
ouint
/Int32
pourSqlInt32
, etc.
La seule fois où vous devez utiliser un type .NET nullable, je crois, est lors de l'utilisation du type de données T-SQL DATETIME2
, qui correspond à DateTime
ou DateTime?
.
0
Merci juharr. Je savais qu'il me manquerait quelque chose de simple. La réponse au cas où quelqu'un d'autre a besoin est de changer la déclaration: public static SqlBoolean IsTimeZoneDST(SqlString timeZone)
et puis quand vous en avez besoin return SqlBoolean.Null
'SqlBoolean' a déjà la possibilité d'être" null ", ce qui peut être déterminé avec le [' SqlBoolean.IsNull'] (https://msdn.microsoft.com/en-us/library/system.data.sqltypes Propriété .sqlboolean.isnull (v = vs.110) .aspx). – juharr
Comment essayez-vous d'utiliser l'assembly - publiez le code qui déclenche l'erreur et l'erreur exacte. – BeanFrog