我一直在尝试读取xml并将其打印在datagrid中,然后再次单击save时将其写回到同一个文件中,以便如果在某个时间后打开它,我可以使用新的文件。所以,这是我做的:MDIForms:WriteXml:空引用异常
DataSet ds;
private void Form2_Load(object sender, EventArgs e)
{
cmd = new SqlCommand("getCustomers", conn);
cmd.CommandType = CommandType.StoredProcedure;
da = new SqlDataAdapter(cmd);
ds = new DataSet();
//da.Fill(ds, "Productslist");
ds.ReadXml(@"C:\Users\Nishanth\documents\visual studio
2010\Projects\Ex1\Ex2\ShoppingCart1.ds");
dataGridView1.DataSource = ds.Tables[0];
}
所以,这里我从xml中读取并为它分配一个网格。在接下来的几行中,当我点击父级mdi表单上的保存按钮并调用子表单的writeX方法时,我写了一个事件。
public void writeX()
{
MessageBox.Show("I'm in writeX()");
ds.WriteXml(@"C:\Users\Nishanth\documents\visual studio
2010\Projects\Ex1\Ex2\ShoppingCart1.ds");
}
这里,在步中WriteXML,我得到和错误说
Null Reference Exception : Object reference not set to an instance of an object.
父窗体代码
private void customer_clicked(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.MaximizeBox = true;
f2.Show();
}
private void products_clicked(object sender, EventArgs e)
{
Form1 f = new Form1();
f.MdiParent = this;
f.MaximizeBox = true;
f.Show();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.writeX();
}
因此,可以ü请让我知道这个错误我一直在做?
更新了代码 – user838359
可以让我知道如何处理这个问题吗? – user838359
我实例化全局数据集。然后在form2_load中更新ds,然后编写xml,它不写任何内容(清除所有内容;猜测ds为null)。 – user838359