0

ストアドプロシージャから返されるnullに問題があります。最初は空白にしたいドロップダウンリストがありますが、その後は固有のストリートタイプが含まれています。そうすれば、ユーザーはフィールドを空白のままにしてすべての結果を返すか、入力を開始して、存在する可能性のあるエントリから提案を取得することができます。

このリストは、すべての住所のメインテーブルに対してDISTINCTクエリを実行するストアドプロシージャから取得される一意のストリートタイプです。ただし、結果にNULLが含まれ、そのnullに達すると、ドロップダウンリストに結果が表示されなくなるようです。

Entity Frameworkを使用していて、文字列のセットを返すストアドプロシージャを追加してから、次のコードを使用してコンボボックスにデータを入力しました。ストアドプロシージャに順序付けを残さない場合、nullはどこかにあり、結果の半分を取得します。nullが最初になるように順序付けすると、コンボボックスに結果が表示されません。

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

だから私はこれについて間違っているのですか?StoredprocのNULLを削除し、コンボボックスを修正して「空白」のエントリを追加する必要がありますか?または、NULLを保持しますが、どういうわけか、コンボボックスにチョークではなくnullを処理させます。ストアドプロシージャのコードは次のとおりです

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

1 に答える 1

0

ストアド プロシージャが文字列のリストを返す場合、文字列のリストを作成し、"" 値を追加してから、sproc から返された範囲を追加できます。

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

null の処理に関しては、「WHERE stType IS NOT NULL」を含めるのが最善の解決策かもしれません。

于 2012-05-07T23:56:36.063 に答える