在DataGridView

时间:2016-08-16 15:20:38

标签: c# xml database datagridview fetch

我目前正在为我们的施工团队制定成本估算器。我用各种相互链接的窗体形式,用户可以输入网站信息,然后生成一个Excel报价。我的问题是我需要一个非站点变量的位置,例如混凝土成本,碎石成本等,用户可以根据位置调整(我们是越野)。

我正在尝试使用" Item"," Description"的列来设置DataGridView。 "单位大小"和"每单位成本"。除了每单位成本外,所有成本都被锁定,用户可以根据位置和一年中的时间进行调整。

我将数据写入XML文件,然后尝试在下次打开DataGridView时恢复该数据(以及他们所做的任何更改)。这就是我的问题所在。当我去查看XML文件本身时,看起来我获得了成功的写入,但信息并没有拉进来。我怎样才能实现这一目标?我的代码如下所示。提前谢谢!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;
using System.Xml;


namespace WindowsFormsApplication2
{
    public partial class frmCostConfig : Form
    {

        public frmCostConfig()
        {
            InitializeComponent();
        }

        private void CostConfig_Load(object sender, EventArgs e)
        {
            string fileName = "C:\\Cost Configuration.xml";
            if (File.Exists(fileName))
            {
                DataSet ds = new DataSet();
                ds.ReadXml(fileName);

                dataCostConfig.DataSource = ds;
            }
        }

        private void btnSaveAllData_Click(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();            
            DataTable dt = new DataTable("Cost Configuration");

            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Description", typeof(string));
            dt.Columns.Add("Unit of Measure", typeof(string));
            dt.Columns.Add("Cost per Unit", typeof(string));
            foreach (DataGridViewRow datarow in this.dataCostConfig.Rows)
            {
                DataRow myrow = dt.NewRow();
                for (int i = 0; i <= dataCostConfig.Columns.Count - 1; i++)
                {
                    myrow[i] = datarow.Cells[i].Value;
                }
                dt.Rows.Add(myrow);
            }
            ds.Tables.Add(dt);
            dataCostConfig.DataSource = ds;

            DataSet dataSet = (DataSet)dataCostConfig.DataSource;
            dataSet.WriteXml("C:\\Cost Configuration.xml");
            this.Close();
        }

    }
}

0 个答案:

没有答案