当前位置:  开发笔记 > 编程语言 > 正文

c#将DataGridView保存到Xml文件

如何解决《c#将DataGridView保存到Xml文件》经验,为你挑选了1个好方法。

这是我保存文件的按钮:

private void metroButton12_Click(object sender, EventArgs e) // save
{
    DataSet ds = (DataSet)dataGridView1.DataSource;
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Filter = "XML|*.xml";
    if (sfd.ShowDialog() == DialogResult.OK)
    {
        try
        {
            ds.Tables[0].WriteXml(sfd.FileName);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    }
}

我试图将我的datagridview安全到XML,但是当我选择文件时,没有任何惊喜。当我启动控制台时,我看到以下消息:System.NullReferenceException:对象引用未设置为对象实例。

我的gridview看起来像:ID名称1 Michale 2 Noob

我在这里错在做什么?..我在网上看到很多东西,但是在stackoverflow和其他论坛上找不到任何解决方案。请新手耐心等待。谢谢!



1> 小智..:

在我看来,您的问题不在您想像的地方。

当我启动控制台时,我看到以下消息:System.NullReferenceException:对象引用未设置为对象实例。

对我来说,这意味着您在启动应用程序时会收到消息,而不是单击按钮时。如果在单击之前收到错误,则问题出在其他地方,而不是发布的代码段中。这是您当前正在执行的完整且可测试的代码段。

using System;
using System.Data;
using System.Windows.Forms;

namespace DataGridViewToXML_43053387
{
    public partial class Form1 : Form
    {
        //DataSet theDataSet;
        public Form1()
        {
            InitializeComponent();
            InsertDgvIntoForm();
            ExportDgvToXML();
        }

        private void InsertDgvIntoForm()
        {
            //create a data set
            DataSet ds = new DataSet();
            //create a data table for the data set
            DataTable dt = new DataTable();
            //create some columns for the datatable
            DataColumn dc = new DataColumn("ItemName");
            DataColumn dc2 = new DataColumn("ItemValue");
            DataColumn dc3 = new DataColumn("Blah");
            DataColumn dc4 = new DataColumn("Bleh");
            //add the columns to the datatable
            dt.Columns.Add(dc);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);

            //create 5 rows of irrelevant information
            for (int i = 0; i < 5; i++)
            {
                DataRow dr = dt.NewRow();
                dr["ItemName"] = "Item" + i + "Name";
                dr["ItemValue"] = "Item" + i + "Value";
                dr["Blah"] = "Item" + i + "Blah";
                dr["Bleh"] = "Item" + i + "Bleh";
                dt.Rows.Add(dr);
            }
            //add the datatable to the datasource
            ds.Tables.Add(dt);
            //just because it looks better on my screen
            dataGridView1.AutoSize = true;
            //make this data the datasource of our gridview
            dataGridView1.DataSource = ds.Tables[0];

        }

        private void ExportDgvToXML()
        {
            DataTable dt = (DataTable)dataGridView1.DataSource;
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "XML|*.xml";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    dt.WriteXml(sfd.FileName);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
        }
    }
}

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有