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 に答える