2011-05-04 160 views
0

我是一个完整的C#新手&想要实现以下目标的最好方法。我有2个数据表C#/ Winforms,DataGridView/Combobox

 
Table 1 - Employees 
Emp Code.....Emp Name.....Manager Cd 
1............Bill Smith......A 
2............Mick Franks.....A 
3............Joyce Watson....B 

Table 2 - Managers 
Manager Cd......Manager Name 
A...............Simon Smith 
B...............Sue Payne 

经理代码是在雇员表的外键我有一个显示雇员表的数据网格,但是当用户添加/编辑经理镉我想显示显示组合框经理姓名,但将从列表中选择时存储经理Cd。

我敢肯定,这是相当直接的,但我已经花了大约3个小时在我/网上试图找到一个解决方案,但他们都显得非常复杂。

感谢您的帮助

回答

3

您可以定义的DataGridView作为DataGridViewComboBoxColumn的列,这类型的列有一个属性命名数据源,可以指向包含可能值列表中的数据表。

您可以在official MSDN documentation上找到此示例。

0

“正常”ComboBoxDisplayMemberValueMember属性,您可以设置。在你的情况下,你希望将DisplayMember设置为经理姓名,将ValueMember设置为经理代码。 (您还需要设置DataSource,如@Doliveras所示)

根据在线文档(请参阅@Diveiveras的答案),这些应该也可以在DataGridViewComboBoxColumn上找到......但我从个人经验中得知在.NET 2.0中不是这种情况。

0
   DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn(); 

       combo.Name = "......"; 
       combo.DataPropertyName = "....."; 
       DataTable dt = obj.SqlDataTable("your sql query") 



       foreach (DataRow row in dt.Rows) 
       { 
        combo.Items.Add(row["...."].ToString()); 
       } 

        dataGridView1.Columns.Add(combo); 

这将一个组合框添加到乌尔GridView和填充与从数据库 您可以添加一个按钮,从下拉/组合框选定的值更新到数据库中的相应值。这只是给你一个快速入门的想法。希望这会有所帮助。