Powershell和SQL参数.如果为空字符串,则传递DBNull
发布时间:2020-12-12 07:28:05 所属栏目:MsSql教程 来源:网络整理
导读:我有这个参数: $objDbCmd.Parameters.Add("@telephone",[System.Data.SqlDbType]::VarChar,18) | Out-Null;$objDbCmd.Parameters["@telephone"].Value = $objUser.Telephone; 字符串$objUser.Telephone可以为空.如果它是空的,我怎么能将它转换为[DBNull] ::
我有这个参数:
$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 } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MYSQL必知必会读书笔记第六章之过滤数据
- arcgis10.2 SDE (sqlserver)安装及使用
- sqlserver提示“在流水模式下,事务无法启动”的解决办法 .
- 数据库 – 将单个R对象列写入预先存在的postgres数据库表
- 如何把sqlserver数据迁移到mysql数据库及需要注意事项
- sql-server – SQL Server Management Studio:导入静默忽略
- 基于WindowsServer2008 R2的WSFC实现SQLServer 2012高可用性
- 即使设置了主键约束,SQL表继承也会在基表中导致重复记录
- SQL71501 – 如何摆脱这个错误?
- sqlserver2005 java连接驱动