2015-07-19 71 views
-1

所以,我有一个表格,它有一组分类(将来可能会有变化)。根据另一个问题(Here)的建议,我创建了一个包含可能类别列表的单独表格。我将如何创建可能的外键的下拉列表?

在我的主表,我有此列,作为一个例子:

[Category] NVARCHAR(50) REFERENCES Categories, 

我已经检查这个作品 - 它仅接受我在分类表中给出正确的值。

我该如何去向用户显示可能值的下拉列表,而不是在尝试添加外键不匹配的行时给他们一个大错误信息?

+1

我猜你加载[类别],并把它们放在一个组合框不允许输入自定义文本。 – nvoigt

+0

使用不同的结果并将其填充到组合框中:http://www.w3schools.com/sql/sql_distinct.asp – jdweng

+0

我该在哪里做,以及如何? – pingu2k4

回答

1

我会假设你知道连接已经DB

using (SqlConnection conn = new SqlConnection(@"Data Source=SHARKAWY;Initial Catalog=Booking;Persist Security Info=True;User ID=sa;Password=123456")) 
{ 
    try 
    { 
     string query = "select CategoryName, CategoryID from Categories"; 
     SqlDataAdapter da = new SqlDataAdapter(query, conn); 
     conn.Open(); 
     DataSet ds = new DataSet(); 
     da.Fill(ds, "Categories"); 
     cmbCategories.DisplayMember = "CategoryName"; 
     cmbCategories.ValueMember = "CategoryID "; 
     cmbCategories.DataSource = ds.Tables["Categories"]; 
    } 
    catch (Exception ex) 
    { 
     // write exception info to log or anything else 
     MessageBox.Show("Error occured!"); 
    }    
} 
+0

我已经连接到它已经等,但我把数据从Visual Studio窗口中打开的数据库中,C#不能去那里? – pingu2k4

+0

对不起,我不明白'把数据从[数据]窗口'放入数据库',如果数据在数据库上,这将它带回来。您也可以使用EF代替。 –

+0

http://i.imgur.com/H4I5ldr.png <<这就是我输入数据的地方,所以在那里的类别列我想有一个可能的值的下拉框。什么是EF? – pingu2k4