我如何访问DataSet以及它的TablesData(s)来添加/删除/编辑来自另一个类的行
我有一个winform,我添加了一个DataGridView dataGridView1 然后我添加了一个DataSet dataSet1 然后我用BindingSource绑定它们
所有数据都将保存在XML
中一切正常,我做了一些测试项目都工作正常
但是当我尝试测试从另一个类添加数据行的可能性时,它不会显示DataGridView上的更改!!!!
所以我将Form1与dataGridView1和dataSet1都公开
在我所做的其他课程中
var esf = new Form1();
DataRow pl = esf.dataSet1.Tables["MyItems"].NewRow();
pl["Type"] = type;
pl["Name"] = true;
esf.dataSet1.Tables["MyItems"].Rows.Add(pl);
如果我添加
esf.dataSet1.WriteXml(esf.XmlSettingsFile);
它正确保存文件!
但它过度写入其他数据
我觉得我正在使用另一个与Form
中的原始DataSet相同的DataSet但我需要访问主窗体
中原始DataSet中的数据我只需要将dataSet1作为公共静态,这样我就可以访问它并向其添加编辑数据 但是当我这样做时,Visual Studio给了我错误!在窗体的视觉视图中!?!
任何建议
答案 0 :(得分:2)
如果我理解正确......
如果是这种情况,那么很明显发生了什么......
我的假设可能是错误的,因为我显然看不到你的代码,但希望这会有所帮助。
编辑 - 解决问题...
同样,我只能猜测你现有的代码是什么样的,但你可以这样做:
不是尝试从Form2(或其他其他表单)访问值,而是设置Form2以便从一开始就可以访问Form1:
当实例化Form2(可能来自Form1)时,只需执行此操作:
Form2 reliantForm = new Form2();
relaintForm.DataSet = this.dataSet1;
reliantForm.Show();
Form2现在有一个对数据集的引用,可以根据需要对其进行操作。