gpt4 book ai didi

c# - Dropdownlist.selecteditem.value = null

转载 作者:行者123 更新时间:2023-12-02 21:49:39 24 4
gpt4 key购买 nike

我有带有 12 个参数的存储过程。参数可以为空。我还有 12 个下拉列表。下拉列表值被传递到 sp。当 dropdownlist.selecteditem.value = null 时,我想将下拉列表中的空值传递到过程中。我尝试了以下作业:

int typeid = (Convert.ToInt16(ddlType.SelectedValue.ToString())) == null ? DBNull.Value : (int)(Convert.ToInt16(ddlType.SelectedValue.ToString()));

但是我得到了错误:

Type of conditional expression cannot be determined because there is no implicit conversion between 'System.DBNull' and 'int'

我们将非常感谢您的帮助。

最佳答案

问题是 DBNull.Value 无法分配给 int。您确实可以选择的一种选择是执行以下操作:

int typeid = string.IsNullOrEmpty(ddlType.SelectedValue) ?
default(int) :
Convert.ToInt32(ddlType.SelectedValue);

另一个选择是使用 int?:

int? typeid = string.IsNullOrEmpty(ddlType.SelectedValue) ?
(int?)null :
(int?)Convert.ToInt32(ddlType.SelectedValue);

还有很多其他选择。但是,如果您尝试将值获取到 int 并稍后知道是否选择了某些内容,那么这两个选项非常简单。在第一种情况下,您可以通过稍后将其与 default(int) 进行比较来查看它之前是否为 null 来推断。在第二种情况下,它更加直接,因为您只需输入 typeid.HasValue 即可查看它是否为 null

现在,我取消了 ToString() 调用,因为如果 SelectedValuenull,它们就会失败。但是,如果这是 Windows 窗体应用程序而不是 Web 窗体应用程序(这是我推断的),那么您需要将该值转换为如下字符串:

var val = Convert.ToString(ddlType.SelectedValue);
int? typeid = string.IsNullOrEmpty(val) ?
(int?)null :
(int?)Convert.ToInt32(ddlType.SelectedValue);

因为如果值为 nullConvert.ToString 将返回空字符串。

关于c# - Dropdownlist.selecteditem.value = null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898394/

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