带有 if 语句的 SQL 参数 vb.net
Posted
技术标签:
【中文标题】带有 if 语句的 SQL 参数 vb.net【英文标题】:SQL parameters with if statement vb.net 【发布时间】:2016-07-05 08:26:04 【问题描述】:所以我正在开发一个基于账户(储蓄账户和支票账户)存款和取款的应用程序。为此,我创建了一个数据库,其中将使用 SQL 参数记录值。
但是现在我卡在了.Add("@descriptionTransaction", SqlDbType.Char).Value = cmdDeposit.Text
参数之一,因为如果我点击存款按钮,它会在descriptionTransaction列中记录为存款。另一方面,如果我对提款按钮执行相同操作,它当然不起作用,因为未声明 cmdWithdrawal.Text
。每当用户单击 cmdDeposit 时,我应该创建一个 if 语句,它将写入 Deposit 或 cmdWithdrawal,它将写入 Withdrawal。
这是我实际用于 sql 参数的代码:
With SqlCmd.Parameters
.Add("@tpAccount", SqlDbType.Char).Value = cbTpAccount.SelectedItem
.Add("@dateTransaction", SqlDbType.DateTime).Value = txtDate.Text
.Add("@descriptionTransaction", SqlDbType.Char).Value = cmdDeposit.Text
.Add("@amountTransaction", SqlDbType.Char).Value = txtWithdrawal.Text
.Add("@balanceTransaction", SqlDbType.Money).Value = txtBalance.Text
End With
有什么方法可以使这个 If 语句起作用?
【问题讨论】:
【参考方案1】:With SqlCmd.Parameters
.Add("@tpAccount", SqlDbType.Char).Value = cbTipoConta.SelectedItem
.Add("@dateTransaction", SqlDbType.DateTime).Value = txtDate.Text
.Add("@descriptionTransaction", SqlDbType.Char).Value = if(cmdDepositar.Text="", cmdWithdrawal.Text, cmdDepositar.Text)
.Add("@amountTransaction", SqlDbType.Char).Value = txtDeposito.Text
.Add("@balanceTransaction", SqlDbType.Money).Value = txtBalance.Text
End With
这是你要找的吗?
【讨论】:
是的。就是这样。谢谢老哥 其实这行不通,在这种情况下总是返回“存款”而不是“提款” @Leprechaun:你的答案是对的,但是使用 vb.net 中的 IIF 函数来减少代码。 @IGottaGo 我想您应该使用... = If(string.IsNullOrEmpty(cmdDepositar.Text) ...
甚至string.IsNullOrWhiteSpace
来检查您的框中是否有文字。【参考方案2】:
With SqlCmd.Parameters
.Add("@tpAccount", SqlDbType.Char).Value = cbTipoConta.SelectedItem
.Add("@dateTransaction", SqlDbType.DateTime).Value = txtDate.Text
.Add("@descriptionTransaction", SqlDbType.Char).Value = iif(String.IsNullOrEmpty(cmdDepositar.Text), "", cmdDepositar.Text)
.Add("@amountTransaction", SqlDbType.Char).Value = txtDeposito.Text
.Add("@balanceTransaction", SqlDbType.Money).Value = txtBalance.Text
End With
试试这个
【讨论】:
我也喜欢这种方法。谢谢老哥 这不是条件运算符的有效 VB .NET 语法。 @IGottaGo:请使用 iif() 来检查写完整 If 语句的条件。以上是关于带有 if 语句的 SQL 参数 vb.net的主要内容,如果未能解决你的问题,请参考以下文章
带有 case OR-ing 的 VB.NET 选择 case 语句逻辑是啥?