将combobox与数据绑定并另存为外键c#

时间:2013-04-23 16:13:16

标签: c# data-binding combobox

我正在使用c#为大学申请人编写申请。在第一个表单上,我有几个文本框,radiobutton和一个组合框。所有这些都与我创建的数据库(学生)有关。数据库中有table tbl_nationality和表tblstudent。在表格tbl_nationality中,我们有列Nationality_idCountrynationality_id是表tblstudent中的外键。

我编写了一些代码行来填充组合框中的列国家/地区的数据(cmbnationality)。问题是,现在我需要保存表单中的数据,组合框的国籍是表tblstudent中的外键。当我从nationality_id显示国家/地区时如何将外键tbl_nationality保存在tblstudent中。

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();
    }
}

1 个答案:

答案 0 :(得分:0)

填充组合框时,请使用Id作为值,使用country作为显示文本。更新数据库时,请获取组合框的SelectedValue属性,该属性将为Id。如果Id不是您想要公开的内容,您可以将数据保存在Session对象中,并使用Country作为该表的查找(只需循环它)。应该很直截了当。

在会话中设置表:

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

从组合框中获取值:

myCombo.SelectedValue

您还应该研究将数据源(从数据集中检索到的数据集中的表)绑定到组合框。