数据绑定到程序化创建的DataTable
假设我有一个像这样的数据表:
DataTable dt = new DataTable("Woot"); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("ID",typeof(System.Guid)), new DataColumn("Name",typeof(String)) });
当我尝试将控件绑定到它时:
this.txtName.DataBindings.Add("Text", _dtRow, "Name");
我得到这个例外:
无法绑定到DataSource上的属性或列名称。 参数名称:dataMember
知道为什么这个数据可以在dataAdapter创建的数据表上运行,但不能在程序创建的数据表上运行吗?
好吧,在搞乱你的代码一段时间后,我一直感到难过。 然后我终于意识到了这个问题。 我假设_dtRow是一个DataRow。 您需要引用实际的DataTable(dt)。
this.textBox1.DataBindings.Add("Text", dt, "Name");
编辑:看到你对伊戈尔的post的评论后。 如果绑定到dt,那么例如,如果您有一个绑定到此DataTable的datagridview,则每次选择不同的行时,文本框都会更改。
这是适用于我的代码:
DataTable dt = new DataTable("Woot"); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("ID",typeof(System.Guid)), new DataColumn("Name",typeof(String)) }); dt.Rows.Add(Guid.NewGuid(), "John"); dt.Rows.Add(Guid.NewGuid(), "Jack"); this.dataGridView1.DataSource = dt; this.textBox1.DataBindings.Add("Text", dt, "Name");
更改DGV中的行,您将看到文本框更改文本。
EIDT再次确定,是时候破解它了。 这就是我开始工作的方式:
this.textBox1.DataBindings.Add("Text",_dtRow.ItemArray[1], "");
我使用索引1,但你可以在数组中使用你需要的任何索引。
你不应该引用dt而不是_dtRow吗?
例如:
this.txtName.DataBindings.Add("Text", dt, "Name");
编辑:
这段代码对我有用:
上述就是C#学习教程:数据绑定到程序化创建的DataTable分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
DataTable dt = new DataTable("Woot"); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("ID",typeof(System.Guid)), new DataColumn("Name",typeof(String)) }); DataRow r = dt.NewRow(); r["ID"] = new Guid(); r["Name"] = "AAA"; dt.Rows.Add(r); r = dt.NewRow(); r["ID"] = new Guid(); r["Name"] = "BBB"; dt.Rows.Add(r); dataGridView1.DataSource = dt; this.txtName.DataBindings.Add("Text", r.Table , "Name");
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1009223.html