如何通过Openfiledailog上传xml文件并在windowsform应用程序的datagridview中显示它 [英] How to upload xml file via Openfiledailog and show it in datagridview in windowsform application

查看:53
本文介绍了如何通过Openfiledailog上传xml文件并在windowsform应用程序的datagridview中显示它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

1)通过Openfiledailog上传xml文件。

2)上传文件将使用按钮点击显示在datagridview中。

解决方案

< pre lang =text>您可以使用此代码,只需用从openfiledialogbox获得的文件路径替换filename



  public   class  CD 
{
public < span class =code-keyword> string TITLE { set ; get ; }
public string ARTIST { set ; get ; }
public string COUNTRY { set ; get ; }
public string COMPANY { set ; get ; }
public decimal PRICE { set ; get ; }
public int 年{ set ; get ; }


}

public Form1()
{
InitializeComponent ();
}

private void button1_Click( object sender,EventArgs e)
{
DataTable mydt;
mydt = CreateDataTable( CATALOG);
string filename = H:\ \mycd_catalog.xml;
// mydt.WriteXml(filename,XmlWriteMode.WriteSchema);
< span class =code-keyword> var
xmlresult = XDocument.Load(filename);

var cdlist = 来自 cd in xmlresult.Descendants( CATALOG)。后代( CD
选择
new
{
TITLE = cd.Element( TITLE)。值,
ARTIST = cd.Element( ARTIST)。值,
COUNTRY = cd.Element( COUNTRY)。价值,
公司= cd.Element( COMPANY)。值,
PRICE = cd.Element( PRICE)。值,
年= cd.Element( )。价值
};

// List< cd> lstCD =新列表< cd>();
foreach var cd cdlist)
{
// CD acd = new CD();
// acd.TITLE = cd。 TITLE;
// acd.ARTIST = cd.ARTIST;
// acd.COUNTRY = cd.COUNTRY;
// acd.COMPANY = cd.COMPANY;
// acd.PRICE = Convert.ToDecimal(cd.PRICE);
// < span class =code-comment> acd.YEAR =转换。 ToInt32(cd.YEAR);

// lstCD.Add(acd);
DataRow row = mydt.NewRow();
row [ TITLE] = cd.TITLE;
row [ ARTIST] = cd.ARTIST;
row [ COUNTRY] = cd.TITLE;
row [ COMPANY] = cd.ARTIST;
row [ PRICE] = Convert.ToDecimal(cd.PRICE);
row [ YEAR] = Convert.ToInt32(cd.YEAR);

mydt.Rows.Add(row);

}
dataGridView1.DataSource = mydt;

}

private DataTable CreateDataTable( string tablename)
{
DataTable dt = new DataTable(tablename);

DataColumn dc1 = new DataColumn();
dc1.ColumnName = TITLE;
dc1.Caption = TITLE;
dc1.DataType = typeof string );

dt.Columns.Add(dc1);

DataColumn dc2 = new DataColumn();
dc2.ColumnName = 艺术家;
dc2.Caption = 艺术家;
dc2.DataType = typeof string );

dt.Columns.Add(dc2);

DataColumn dc3 = new DataColumn();
dc3.ColumnName = COUNTRY;
dc3.Caption = COUNTRY;
dc3.DataType = typeof string );

dt.Columns.Add(dc3);


DataColumn dc4 = new DataColumn();
dc4.ColumnName = COMPANY;
dc4.Caption = COMPANY;
dc4.DataType = typeof string );

dt.Columns.Add(dc4);

DataColumn dc5 = new DataColumn();
dc5.ColumnName = PRICE;
dc5.Caption = PRICE;
dc5.DataType = typeof decimal );

dt.Columns.Add(dc5);

DataColumn dc6 = new DataColumn();
dc6.ColumnName = ;
dc6.Caption = ;
dc6.DataType = typeof int );

dt.Columns.Add(dc6);


return dt;
}


1)Upload xml file via Openfiledailog.
2)uploaded file will be show in datagridview using button click.

解决方案

You can use this code just replace filename by your filepath obtained from openfiledialogbox 


public class CD
       {
           public string TITLE { set; get; }
           public string ARTIST { set; get; }
           public string COUNTRY { set; get; }
           public string COMPANY { set; get; }
           public decimal PRICE { set; get; }
           public int YEAR { set; get; }


       }

       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           DataTable mydt;
           mydt = CreateDataTable("CATALOG");
           string filename = "H:\\mycd_catalog.xml";
           //mydt.WriteXml(filename, XmlWriteMode.WriteSchema);
           var xmlresult = XDocument.Load(filename);

           var cdlist = from cd in xmlresult.Descendants("CATALOG").Descendants("CD")
                        select
                            new
                            {
                                TITLE = cd.Element("TITLE").Value,
                                ARTIST = cd.Element("ARTIST").Value,
                                COUNTRY = cd.Element("COUNTRY").Value,
                                COMPANY = cd.Element("COMPANY").Value,
                                PRICE = cd.Element("PRICE").Value,
                                YEAR = cd.Element("YEAR").Value
                            };

           //List<cd> lstCD = new List<cd>();
           foreach (var cd in cdlist)
           {
               //CD acd = new CD();
               //acd.TITLE = cd.TITLE;
               //acd.ARTIST = cd.ARTIST;
               //acd.COUNTRY = cd.COUNTRY;
               //acd.COMPANY = cd.COMPANY;
               //acd.PRICE = Convert.ToDecimal(cd.PRICE);
               //acd.YEAR = Convert.ToInt32(cd.YEAR);
               //lstCD.Add(acd);
               DataRow row = mydt.NewRow();
               row["TITLE"] = cd.TITLE;
               row["ARTIST"] = cd.ARTIST;
               row["COUNTRY"] = cd.TITLE;
               row["COMPANY"] = cd.ARTIST;
               row["PRICE"] = Convert.ToDecimal(cd.PRICE);
               row["YEAR"] = Convert.ToInt32(cd.YEAR);

               mydt.Rows.Add(row);

           }
           dataGridView1.DataSource = mydt;

       }

       private DataTable CreateDataTable(string tablename)
       {
           DataTable dt = new DataTable(tablename);

           DataColumn dc1 = new DataColumn();
           dc1.ColumnName = "TITLE";
           dc1.Caption = "TITLE";
           dc1.DataType = typeof(string);

           dt.Columns.Add(dc1);

           DataColumn dc2 = new DataColumn();
           dc2.ColumnName = "ARTIST";
           dc2.Caption = "ARTIST";
           dc2.DataType = typeof(string);

           dt.Columns.Add(dc2);

           DataColumn dc3 = new DataColumn();
           dc3.ColumnName = "COUNTRY";
           dc3.Caption = "COUNTRY";
           dc3.DataType = typeof(string);

           dt.Columns.Add(dc3);


           DataColumn dc4 = new DataColumn();
           dc4.ColumnName = "COMPANY";
           dc4.Caption = "COMPANY";
           dc4.DataType = typeof(string);

           dt.Columns.Add(dc4);

           DataColumn dc5 = new DataColumn();
           dc5.ColumnName = "PRICE";
           dc5.Caption = "PRICE";
           dc5.DataType = typeof(decimal);

           dt.Columns.Add(dc5);

           DataColumn dc6 = new DataColumn();
           dc6.ColumnName = "YEAR";
           dc6.Caption = "YEAR";
           dc6.DataType = typeof(int);

           dt.Columns.Add(dc6);


           return dt;
       }


这篇关于如何通过Openfiledailog上传xml文件并在windowsform应用程序的datagridview中显示它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆