1

ddlInstructorAllocatedasp.net Webフォームにドロップダウンメニューがあり、データベースからリスト内のすべてのアイテムを取得しています。「インストラクターを選択してください」と表示される別のアイテムを挿入して、ユーザーが何をすべきかを理解できるようにしました。このフォームを保存すると、データベースに入力された情報が入力されます。対応する列ddlInstructorAllocatedは必須フィールドではないため、NULLのままにしておくことができます。私がやろうとしているのは、「インストラクターを選択してください」がデフォルトで選択されている場合で、その値はNULLになります。私は多くの方法を試しましたが、それを理解できないようです。以下は私が試した方法の1つです。助けてください。リストからインストラクターが選択された場合、そのIDが返され、文字列に変換されてからDBに保存されます。

        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)後で実行します。入力文字列が正しい形式ではなかったという例外が発生します。

4

2 に答える 2

2
int id;
EmployeeID = int.TryParse(ddlInstructorAllocated.SelectedValue, out id)
                   ? id 
                   : (int?)null;

TryParseは値をintに解析しようとします。正常に変換できる場合は、値を割り当てています。そうでない場合は、null値を割り当てます。

于 2013-02-11T03:50:20.287 に答える
-1

ドロップダウンのインデックス0に「インストラクターを選択してください」という文を配置してみてください。インデックスゼロを選択した場合。nullを配置する代わりに。ここでいくつかのことができます:

  1. n/aまたは空の文字列のようなものを配置します。
  2. 本当にnullを出力したい場合は、dbnullを使用するか、プロパティをnull可能に作成してみてください。

このシャッドは私が思うのを助けます。

于 2013-02-11T03:53:27.890 に答える