C# 将XML文件打开到数据网格视图算法中,datatable不';不支持从xml进行模式推理

C# 将XML文件打开到数据网格视图算法中,datatable不';不支持从xml进行模式推理,c#,xml,datagridview,save,C#,Xml,Datagridview,Save,因此,我找到了下面的save代码,用于获取datagridview中的内容并将其保存到xml文件中。我试图写一个函数,它的作用正好相反(open)。到目前为止,我有下面的代码,它一直工作到行部分。我不能很好地理解底部的逻辑来做我需要它做的事情。到目前为止,我得到的都是关于类型不匹配的错误。任何帮助都将不胜感激。另外,我在open函数中发现一个奇怪的错误,即DataTable不支持从Xml推断模式。当我尝试读取XML时 private void saveToolStripMenuItem_Clic

因此,我找到了下面的save代码,用于获取datagridview中的内容并将其保存到xml文件中。我试图写一个函数,它的作用正好相反(open)。到目前为止,我有下面的代码,它一直工作到行部分。我不能很好地理解底部的逻辑来做我需要它做的事情。到目前为止,我得到的都是关于类型不匹配的错误。任何帮助都将不胜感激。另外,我在open函数中发现一个奇怪的错误,即DataTable不支持从Xml推断模式。当我尝试读取XML时

private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable("itemstable");

            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                dt.Columns.Add(dataGridView1.Columns[i].Name, typeof(System.String));
            }

            DataRow myrow;
            int icols = dataGridView1.Columns.Count;
            foreach (DataGridViewRow drow in this.dataGridView1.Rows)
            {
                myrow = dt.NewRow();
                for (int i = 0; i <= icols - 1; i++)
                {

                    myrow[i] = drow.Cells[i].Value;
                }
                dt.Rows.Add(myrow);
            }

            dt.WriteXml("items.xml");
        }

        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable("itemstable");

            dt.ReadXml("items.xml");

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dataGridView1.Columns.Add(dt.Columns[i].ColumnName.ToString(), dt.Columns[i].ColumnName.ToString());
            }

            DataRow myrow;
            int icols = dt.Columns.Count;
            foreach (DataRow drow in dt.Rows)
            {
                myrow = dataGrideView1.NewRow();
                for (int i = 0; i <= icols - 1; i++)
                {

                    myrow[i] = drow.Cells[i].Value;
                }
                dt.Rows.Add(myrow);
            }
private void saveToolStripMenuItem\u单击(对象发送方,事件参数e)
{
DataTable dt=新的DataTable(“itemstable”);
for(int i=0;i对于(int i=0;i我能够使用以下代码打开我的文件:

private void openToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        ds.ReadXml("items.xml");
        dataGridView1.Columns.Clear();
        dataGridView1.DataSource = ds.Tables[0];           
    }