【问题标题】:Assigning new dropdown list item value as NULL in database in C#在 C# 的数据库中将新的下拉列表项值分配为 NULL
【发布时间】:2013-02-11 03:42:32
【问题描述】:

我的 asp.net Web 表单中有一个下拉菜单 ddlInstructorAllocated,它从数据库中获取列表中的所有项目。我插入了另一个项目以显示为“请选择讲师”,以便用户知道该怎么做。保存此表单时,它会填充输入到数据库中的信息。 ddlInstructorAllocated 对应的列不是必填字段,可以保留为 NULL。我要做的是默认选择“请选择讲师”时,其值为NULL。我尝试了很多方法,但似乎无法弄清楚。以下是我尝试过的方法之一。请帮忙。对于从列表中选择讲师的实例,返回其 ID,将其转换为字符串,然后保存到数据库中。

        private void DisplayInstructors()
    {
        ListItem li;
        li = new ListItem("Please Select Instructor");
        li.Value = null;
        ddlInstructorAllocated.Items.Add(li);

        var instructors = EmployeeRepository.GetInstructors();

        foreach (var i in instructors)
        {
            ddlInstructorAllocated.Items.Add(new ListItem(string.Format("{0} {1}", i.FirstName, i.LastName), i.EmployeeID.ToString()));
        }
    }

数据库中的 ID 存储为 int,稍后我正在执行 EmployeeID = int.Parse(ddlInstructorAllocated.SelectedValue),我收到输入字符串格式不正确的异常

【问题讨论】:

  • 因为数据库中的 ID 存储为 int 并且我稍后会执行 'EmployeeID = int.Parse(ddlInstructorAllocated.SelectedValue)',所以我收到一个异常,即输入字符串不在正确的格式
  • 您必须将 selectedvalue 转换为您的 int id 属性。
  • 如何将 null 转换为 int。你能举个例子吗?谢谢
  • 请检查我的回答。

标签: asp.net c#-4.0 drop-down-menu null webforms


【解决方案1】:
int id;
EmployeeID = int.TryParse(ddlInstructorAllocated.SelectedValue, out id)
                   ? id 
                   : (int?)null;

TryParse 尝试将值解析为 int,如果您可以成功转换,则您正在分配该值。如果不是,则分配 null 值。

【讨论】:

【解决方案2】:

尝试将您的陈述“请选择讲师”放在下拉列表的索引 0 上。选择索引零时。而不是放置null。你可以在这里做一些事情:

  1. 放置类似 n/a 或空字符串的内容。
  2. 如果您真的想将 null 设为 null,请尝试使用 dbnull 或创建可为 null 的属性。

这对我有帮助。

【讨论】:

  • 恕我直言,这不是一个好方法。
  • 您能否举个例子说明我如何使用 dbnull?谢谢
  • @ad.net 是的,我正在回复。他编辑了更具体的信息,反正你的反应更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
相关资源
最近更新 更多