1

嗨,任何人都可以在这个问题上帮助我,就像我试图从 datagridview 中的数据创建 XML 文件一样。问题是 datagridview 是动态创建的 n 它取决于用户在他创建的 n 列中输入数据的行数。Datagridview 包含具有整数和字符串的列。所以初始化列 n 行有点困难,因为我是新手。请帮我解决这个问题..

4

3 回答 3

4

请参阅已接受的解决方案DataTable手动创建

DataTable dt = new DataTable();
foreach(DataGridViewColumn col in dgv.Columns)
{
   dt.Columns.Add(col.HeaderText);    
}

foreach(DataGridViewRow row in dgv.Rows)
{
    DataRow dRow = dt.NewRow();
    foreach(DataGridViewCell cell in row.Cells)
    {
        dRow[cell.ColumnIndex] = cell.Value;
    }
    dt.Rows.Add(dRow);
}

创建这个之后DataTable,创建一个DataSet并使用WriteXml

DataSet ds = new DataSet();
ds.Tables.Add(dt);
ds.WriteXml("your local path here");
于 2012-09-24T05:08:25.160 回答
2
    DataSet ds = new DataSet(); 

    DataTable dt = (DataTable)gv.DataSource;// if data source is dynamic data table it will wokr

    ds.Tables.Add(dt);

    string xml = ds.GetXml();
于 2012-09-24T05:10:07.433 回答
0
    private XElement GetData(DataGridView dgv)
    {
        var elem = new XElement("data");
        foreach (DataGridViewRow row in dgv.Rows)
        {
            elem.Add(new XElement("row",
                row.Cells
                .Cast<DataGridViewCell>()
                .Select(a => new XElement(a.OwningColumn.Name, a.Value))));
        }

        return elem;
    }
于 2012-09-24T05:07:49.860 回答