0

私はc#を使って大学の志願者向けの申請書を書いています。最初のフォームには、いくつかのテキスト ボックス、ラジオボタン、およびコンボ ボックスがあります。これらはすべて、私が作成したデータベース (学生) に関連しています。データベースにはtable tbl_nationalityと テーブルtblstudentがあります。表tbl_nationalityには、列Nationality_idとがありますCountry。はnationality_idテーブル内の外部キーtblstudentです。

コンボ ボックス (cmbnationality) の列 country からデータを入力するコード行をいくつか書きました。問題は、フォームからデータを保存する必要があり、コンボ ボックスの国籍がテーブル tblstudent の外部キーになっていることです。nationality_idから国を表示しているときに、外部キーを tblstudent に保存するにはどうすればよいですかtbl_nationality

void FillNationality()
{
    SqlConnection connection = new SqlConnection();
    connection.ConnectionString = "Integrated Security=true; Initial Catalog = student; Data Source = Yudish-PC";
    string Query = "select * from tbl_nationality ;";
    SqlCommand cmdDatabase = new SqlCommand(Query, connection);
    SqlDataReader myReader;
    try
    {
        connection.Open();
        myReader = cmdDatabase.ExecuteReader();
        while (myReader.Read())
        {
          string nationality = myReader.GetString (1);
            cmbnationality.Items.Add(nationality);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);            
    }
    finally
    {
        connection.Close();
    }
}
4

1 に答える 1

0

コンボボックスにデータを入力するときは、ID を値として使用し、国を表示テキストとして使用します。データベースを更新するときは、コンボボックスの SelectedValue プロパティを取得します。これが Id になります。Id を公開したくない場合は、Session オブジェクトにデータを保持し、Country をそのテーブルのルックアップとして使用できます (ループするだけです)。かなり簡単なはずです。

セッションでのテーブルの設定:

Session["myTable"] = ds.tables["myTable"];

コンボボックスから値を取得:

myCombo.SelectedValue

データソース (データベースから取得したデータセットのテーブル) をコンボボックスにバインドすることも検討する必要があります。

于 2013-04-23T20:31:20.467 に答える