簡體   English   中英

如何將數據網格轉換為數據表?

[英]How to convert data grid to data table?

在我的應用程序中,需要將我的數據網格轉換為數據表,我通過引用傳遞數據表和數據網格。 這是我的功能。

public static void ConvertGridToTable(ref Datatable dt, ref Gridview grd)
 public static void ConvertGridToTable(ref DataTable dt, ref GridView grd)
    {
        try
        {
            if (grd.Rows.Count <= 0) return;

            for (int i = 0; i <= grd.Columns.Count - 1; i++)
            {
                if (grd.Columns[i].GetType().Name.Equals("BoundField"))
                {
                    BoundField bf = (BoundField)grd.Columns[i];
                    dt.Columns.Add(bf.DataField.ToString());
                }
            }

            for (int i = 0; i <= grd.Rows.Count - 1; i++)
            {
                dt.Rows.Add();
                for (int j = 0; j <= grd.Columns.Count - 1; j++)
                {
                    if (grd.Columns[j].GetType().Name.Equals("BoundField"))
                    {
                        BoundField bf = (BoundField)grd.Columns[j];
                        for (int k = 0; k <= dt.Columns.Count - 1; k++)
                        {
                            if (dt.Columns[k].ColumnName.Trim().Equals(bf.DataField.ToString()))
                            {
                                string value = grd.Rows[i].Cells[j].Text.Trim().Contains("&nbsp;") ? grd.Rows[i].Cells[j].Text.Trim().Replace("&nbsp;", string.Empty) : grd.Rows[i].Cells[j].Text.Trim();
                                dt.Rows[i][bf.DataField.ToString()] = value;
                            }
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

你也可以這樣做: -

var dataTable = new DataTable();

Array.ForEach(
dataGridView1.Columns.Cast<DataGridViewColumn>().ToArray(), 
arg => dataTable.Columns.Add(arg.HeaderText, arg.ValueType));
Array.ForEach(
dataGridView1.Rows.Cast<DataGridViewRow>().ToArray(), 
arg => dataTable.Rows.Add(arg.Cells.Cast<DataGridViewCell>().Select(cell => cell.Value)));

return dataTable;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM