Powershell et les paramètres SQL. Si une chaîne vide, passer DBNull
J'ai eu ce paramètre:
$objDbCmd.Parameters.Add("@telephone", [System.Data.SqlDbType]::VarChar, 18) | Out-Null;
$objDbCmd.Parameters["@telephone"].Value = $objUser.Telephone;
Où la chaîne $objUser.Telephone
peut être vide. Si elle est vide, comment puis-je convertir [DBNull]::Value
?
J'ai essayé:
if ([string]:IsNullOrEmpty($objUser.Telephone)) { $objUser.Telephone = [DBNull]::Value };
Mais qui me donne l'erreur:
Exception d'appeler "la méthode ExecuteNonQuery" avec "0" argument(s): "impossible de convertir le paramètre de la valeur à partir d'un ResultPropertyValueCollection à une Chaîne."
Et si je la convertir en une chaîne de caractères, il insère une chaîne vide ""
, et pas DBNull
.
Comment cela peut-il être réalisé?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Dans PowerShell, vous pouvez traiter les nuls/les chaînes vides comme un booléen.
Donc.... après avoir dit que vous pouvez faire:
Mais je préfère terminer dans une fonction comme:
Je ne sais pas à propos de powershell, mais en C#, je voudrais faire quelque chose comme ceci:
Toujours ajouter +"" à la fin de db valeurs...
$de commande.Les Paramètres["@EmployeeType"].Valeur= $ADResult.EmployeeType + ""