我有一个C#Windows窗体应用程序,我使用VS 2013进行编辑。数据已从SQL数据库中检索并存储在DataSet(Properties
)中名为ds
的DataTable中。使用以下方法填充Label的文本字段时没有错误:
label1.DataBindings.Add(new Binding("Text", ds.Tables["Properties"], "myColumn", true));
但是,如果我使用BindingSource作为DataSource而不是DataSet DataTable,我会收到错误消息:
Designer文件中的自动生成代码(BindingSource从Toolbox添加到表单中):
private System.Windows.Forms.BindingSource bsProperties;
this.bsProperties = new System.Windows.Forms.BindingSource(this.components);
在代码文件中:
bsProperties.DataSource = ds.Tables["Properties"];
label1.DataBindings.Add(new Binding("Text", bsProperties, "myColumn", true));
当我尝试访问DataSet中的相同DataTable时,为什么会出现此错误消息?如果我使用BindingSource作为DataSource而不是DataSet DataTable作为DataSource,对DataBindings.Add()
的调用是否不同?
我的最终目标是使用BindingSource填充ComboBox,然后Label填充与ComboBox中所选项目相关的数据(存储在DataSet中与ComboBox中的数据相同的行)。为此,我想我需要使用DataRowView,但这是另一天的问题。