gpt4 book ai didi

c# - SqlParameters 列表中的有条件空值

转载 作者:行者123 更新时间:2023-12-03 19:15:04 25 4
gpt4 key购买 nike

我们有一个代码块,它创建一个 sqlParameters 列表,然后将它们传递给存储过程。要求根据输入文本框是否为空有条件地使一些值无效。

基本代码:

var SqlParams = new List<SqlParameter> {
new SqlParameter("@SomeFloat", SqlDbType.FLoat) {Value = f},
....
}

我尝试了一些变体,但它没有用,VS 给出了一个关于 float 和 null 之间没有隐式转换的错误。

new SqlParameter("@SomeFloat", SqlDbType.Float) {Value = (!string.IsNullOrEmpty(tb.Text) ? double.Parse(tb.Text) : DBNull.Value)},

有没有办法维护参数列表,这样我们就不必重写整个模块?

谢谢

最佳答案

您就快完成了,您只需确保条件运算符知道其结果应该是什么。将 double.ParseDBNull.Value 之一转换为 object

我还删除了一些括号并交换了条件以使其更容易删除。

new SqlParameter("@SomeFloat", SqlDbType.Float) 
{
Value = string.IsNullOrEmpty(tb.Text)
? DBNull.Value
: (object)double.Parse(tb.Text)
}

不过我通常会做这样的事情

if (!string.IsNullOrEmpty(tb.Text))
command.Parameters.AddWithValue("@SomeFloat", double.Parse(tb.Text));

如果文本框为空,则不指定值,让存储过程处理这种情况。

关于c# - SqlParameters 列表中的有条件空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9117086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com