Mic*_*ael 2 c# xml datagridview save
这是我保存文件的按钮:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图将我的datagridview安全到XML,但是当我选择文件时,没有任何惊喜。当我启动控制台时,我看到以下消息:System.NullReferenceException:对象引用未设置为对象实例。
我的gridview看起来像:ID名称1 Michale 2 Noob
我在这里错在做什么?..我在网上看到很多东西,但是在stackoverflow和其他论坛上找不到任何解决方案。请新手耐心等待。谢谢!
在我看来,您的问题不在您想像的地方。
当我启动控制台时,我看到以下消息: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);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7657 次 |
| 最近记录: |