![](/img/trans.png)
[英]How to convert DataGridViewRowCollection to DataRow[]
[英]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);
}
资源:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.