繁体   English   中英

将DataRow转换为TableRow

[英]Convert DataRow to TableRow

很简单。 找不到简单的解决方案。 不确定它们是否是简单的解决方案? :/

我有一个数据表。 我本质上是想实现这一目标...

DataTable dt = new DataTable();
dataAdapter.Fill(dt);

TableRow tr = new TableRow();
tr = dt.Rows[0];

但我不能从DataRow转换为TableRow!

救命!

亚历克斯

TableRow是一个UI元素,它代表Table控件内的一行)。 DataRow是一个数据元素,它表示DataTable中的一行数据。 您不能像这样在两者之间转换,因为它们只是不同的野兽。

如果要使用UI,则应将Table控件绑定到DataTable。 然后,您可以拉出单个TableRow对象。

你想做什么?

你可以用这个

TableRow tr =新的TableRow();

    tr .Cells(0).Text = dt.Rows[0][0];

因为TabeRow有这么多单元格,所以必须指定单元格。 没有方法将整个数据行添加到TableRow中,两者都是不同的。

如果您的目标是在UI上显示dataTable(或任何其他数据源)中的数据,为什么不使用中继器?

无论如何,您不能只将DataTableRow转换为TableRow,而是必须自己做。 看看下面的代码

private void GenerateTable()

    {

        DataTable dt = CreateDataTable();

        Table table = new Table();

        TableRow row = null;



        //Add the Headers

        row = new TableRow();

        for (int j = 0; j < dt.Columns.Count; j++)

        {

            TableHeaderCell headerCell = new TableHeaderCell();

            headerCell.Text = dt.Columns[j].ColumnName;

            row.Cells.Add(headerCell);

        }

        table.Rows.Add(row);



        //Add the Column values

        for (int i = 0; i < dt.Rows.Count; i++)

        {

            row = new TableRow();

            for (int j = 0; j < dt.Columns.Count; j++)

            {

                TableCell cell = new TableCell();

                cell.Text = dt.Rows[i][j].ToString();

                row.Cells.Add(cell);

            }

            // Add the TableRow to the Table

            table.Rows.Add(row);

        }

        // Add the the Table in the Form

        form1.Controls.Add(table);

    }

资源:

http://geekswithblogs.net/dotNETvinz/archive/2009/06/24/fill-asp.net-table-with-data-from-datatable.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM