Powershell和SQL参数.如果为空字符串,则传递DBNull
发布时间:2020-05-24 03:57:38 所属栏目:MsSql 来源:互联网
导读:我有这个参数: $objDbCmd.Parameters.Add(@telephone, [System.Data.SqlDbType]::VarChar, 18) | Out-Null;$objDbCmd.Parameters[@telephone].Value = $objUser.Telephone; 字符串$objUser.Telephone可以为空.如果它是空的,我怎么能将它转
|
我有这个参数: $objDbCmd.Parameters.Add("@telephone",[System.Data.SqlDbType]::VarChar,18) | Out-Null;
$objDbCmd.Parameters["@telephone"].Value = $objUser.Telephone;
字符串$objUser.Telephone可以为空.如果它是空的,我怎么能将它转换为[DBNull] :: Value? 我试过了: if ([string]:IsNullOrEmpty($objUser.Telephone)) { $objUser.Telephone = [DBNull]::Value };
但这给了我错误:
如果我将它转换为字符串,它会插入一个空字符串“”,而不是DBNull. 如何实现这一目标? 谢谢. 解决方法在PowerShell中,您可以将null /空字符串视为布尔值.$x = $null
if ($x) { 'this wont print' }
$x = ""
if ($x) { 'this wont print' }
$x = "blah"
if ($x) { 'this will' }
所以….说你可以这样做: $Parameter.Value = $(if ($x) { $x } else { [DBNull]::Value })
但我更倾向于将其包装在以下函数中: function CatchNull([String]$x) {
if ($x) { $x } else { [DBNull]::Value }
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
