我是 VS2010 和 C# 的新手,我正在尝试将 VB6 应用程序转换为 .net,但我遇到了让 ComboBox 正常工作的问题。我试图在“数据绑定模式”中绑定一个组合框,但它不起作用。当运行我的测试时,ComboBox 仅显示与记录关联的整数,但不会显示与下级 ComboBox 数据源关联的“显示成员”。下拉列表正确显示(绿色、蓝色、黄色),如果我从列表中选择项目并单击保存,我会收到格式异常“输入字符串格式不正确”。但我的数据似乎正确。我已经阅读并尝试了所有内容,但对于我的生活,我似乎无法弄清楚我做错了什么。
希望有人能对此有所了解……</p>
我创建了一个测试,我从我的主表数据源中选择我的“ChoiceID”字段作为组合框类型。使用图形界面,我将“数据源”设置为“choiceBindingSource”。我将“显示成员”设置为“选择”。我将我的“价值成员”设置为“ChoiceID”。
注意:我以编程方式完成了此操作,结果相同。
主表:ID(整数),ChoiceID(整数)
数据:
1,1
2,1
3,2
选择表:ChoiceID(Integer)、Choice(Text)
数据:
1、绿色
2、蓝色
3、黄色
当我运行测试时,我的组合框显示 1 NOT “Green”。
问题:
首先,为什么 ComboBox 在 ComboBox binging 中没有正确地将 Master 表中的“ChoiceID”绑定到 Choice 表的“ChoiceID”?其次,当我的数据似乎采用正确的格式时,为什么我从下拉列表中选择和项目时会出现格式异常。
谢谢,JC
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void masterBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.masterBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.tabTestDataSet);
}
private void Form2_Load(object sender, EventArgs e)
{
this.choiceComboBox.DataSource = choiceBindingSource;
this.choiceComboBox.DisplayMember = "Choice";
this.choiceComboBox.ValueMember = "ChoiceID";
// TODO: This line of code loads data into the 'tabTestDataSet.Master' table. You can move, or remove it, as needed.
this.masterTableAdapter.Fill(this.tabTestDataSet.Master);
// TODO: This line of code loads data into the 'tabTestDataSet.Choice' table. You can move, or remove it, as needed.
this.choiceTableAdapter.Fill(this.tabTestDataSet.Choice);
}
}