【发布时间】:2011-04-23 07:52:01
【问题描述】:
我正在构建一个简单的 C# 应用程序,它允许用户编辑数据库中表的行。界面很简单,基本上就是一个行列表和几个按钮。选择一行并按下“添加”按钮会弹出一个新表单,其中每列都有文本框。我希望用所选行的值填充这些列。
在阅读了几篇文章后,我发现可能最简单的方法是将 TextBox 的 Text 属性绑定到 DataSource。因此,我将数据库中的值存储在 DataTable 对象中,并计划检索选定的 DataRow 并将其绑定到 TextBox。这是我使用的线路:
productNameTextBox.DataBindings.Add(new Binding("Text", productRow, "Name"));
结果如下异常:
类型的第一次机会异常 'System.ArgumentException' 发生在 System.Windows.Forms.dll 无法绑定 到属性或列名称 数据源。参数名称:dataMember
是的,“名称”列确实存在。
根据绑定文档(http://msdn.microsoft.com/en-us/library/4wkkxwcz(v=VS.80).aspx)和许多示例阅读后,在我看来,一个有绑定到包含该行的 DataTable。以下代码对我有用:
productNameTextBox.DataBindings.Add(new Binding("Text", productRow.Table, "Name"));
除了它总是将 TextBox 的值设置为第一行。如何指定要使用的行?
【问题讨论】:
标签: c# textbox datatable binding datarow