C#:选择要在DataGridView for DataBinding中打开的XML文件

时间:2017-03-28 07:05:44

标签: c# xml winforms datagridview

我想从XML文件加载DataGridView 我把'加载''像这样的Button事件中的代码:

 private void metroButton13_Click(object sender, EventArgs e) 
 {
     // load
     DataSet dataSet = new DataSet();
     dataSet.ReadXml(@"C:\temp\xml.xml");
     dataGridView1.DataSource = dataSet.Tables[0];
 }

使用 const UniCode-String正确加载我想要的内容 我现在需要的是一个 PopUp 窗口,我可以在其中选择要绑定到DataSource的文件而不是 const " C:\ TEMP \ xml.xml"字符串。

是的我知道我尝试了很多主题,但到目前为止我还没有在我的项目中这样做。

2 个答案:

答案 0 :(得分:1)

您可以使用OpenFileDialog选择文件并将其传递给ReadXml。像下面的行可以解决你的问题。

private void metroButton13_Click(object sender, EventArgs e) 
{
    DialogResult result = openFileDialog1.ShowDialog();
    int size =0;
    string file = string.empty;
    if (result == DialogResult.OK) // Test result.
    {
       string file = openFileDialog1.FileName;
       try
       {
          string text = File.ReadAllText(file);
          size = text.Length;
       }
       catch (IOException)
       {
       }
    }
    if(size >0) 
    {
        DataSet dataSet = new DataSet();
        dataSet.ReadXml(file);
        dataGridView1.DataSource = dataSet.Tables[0];
    }
    else 
    {
      msgbox ("blank file");
    }
}

答案 1 :(得分:0)

  DataSet dataSet = new DataSet();
            OpenFileDialog sfd = new OpenFileDialog();
            sfd.Filter = "XML|*.xml";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                string file = sfd.FileName;
                try
                {

                    dt.ReadXml(file);

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }

实际上这段代码解决了我的问题,但你给了我一些思考的东西。无论如何,谢谢你!