我正在使用c#为大学申请人编写申请。在第一个表单上,我有几个文本框,radiobutton和一个组合框。所有这些都与我创建的数据库(学生)有关。数据库中有table tbl_nationality
和表tblstudent
。在表格tbl_nationality
中,我们有列Nationality_id
和Country
。 nationality_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();
}
}
答案 0 :(得分:0)
填充组合框时,请使用Id作为值,使用country作为显示文本。更新数据库时,请获取组合框的SelectedValue属性,该属性将为Id。如果Id不是您想要公开的内容,您可以将数据保存在Session对象中,并使用Country作为该表的查找(只需循环它)。应该很直截了当。
在会话中设置表:
Session["myTable"] = ds.tables["myTable"];
从组合框中获取值:
myCombo.SelectedValue
您还应该研究将数据源(从数据集中检索到的数据集中的表)绑定到组合框。