0

我遇到了从存储过程返回的空值问题。我有一个下拉列表,我希望最初为空白,但随后包含独特的街道类型。这样,用户可以将该字段留空以返回所有结果,或者开始输入并从确实存在的可能条目中获取建议。

该列表是从仅对所有地址的主表执行 DISTINCT 查询的存储过程中检索到的唯一街道类型。但是,我在结果中得到一个 NULL,并且我的下拉列表似乎在达到该 null 时停止显示结果。

我正在使用实体框架并添加了返回一组字符串的存储过程,然后使用以下代码填充组合框。如果我在存储过程中没有排序,则 null 位于中间某处,我得到一半的结果,如果我排序它,那么 null 首先是我的组合框中没有结果。

 SideSewerDAL.SideSewerEntities entities = new SideSewerDAL.SideSewerEntities();
 comboType.DataSource = entities.GetUniqueStreetTypes();

那么我会错吗?我应该摆脱存储过程中的 NULL 并以某种方式修复组合框以添加“空白”条目吗?或者保留 NULL 但以某种方式使组合框处理空值而不是阻塞!这是存储过程的代码

    public ObjectResult<global::System.String> GetUniqueStreetTypes()
    {
        return base.ExecuteFunction<global::System.String>("GetUniqueStreetTypes");
    }
4

1 回答 1

0

如果存储过程返回一个字符串列表,您可以创建一个字符串列表,添加“”值,然后添加从存储过程返回的范围。

List<string> values = new List<string>();
values.Add("");
values.AddRange(entities.GetUniqueStreetTypes());
comboType.DataSource = values;

至于处理空值,最好的解决方案可能是最好包括“WHERE stType IS NOT NULL”

于 2012-05-07T23:56:36.063 回答