足够简单。找不到简单的解决方案。不确定它们是否是一个简单的解决方案? :/
我有一个dataTable。我基本上想要实现这个......
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
TableRow tr = new TableRow();
tr = dt.Rows[0];
但我无法从DataRow转换为TableRow!
帮助!
亚历
答案 0 :(得分:3)
TableRow是一个UI元素,它表示一个Table控件中的一行。 DataRow是一个数据元素,它表示DataTable中的一行数据。你不能像这样在两者之间进行转换,因为它们只是不同的野兽。
如果您希望使用UI,则应将Table控件绑定到DataTable。然后,您可以拉出单个TableRow对象。
你想做什么?
答案 1 :(得分:1)
你可以用这个
TableRow tr = new TableRow();
tr .Cells(0).Text = dt.Rows[0][0];
因为TabeRow有这么多单元格,所以你必须要指定单元格。没有方法可以将整个数据库添加到TableRow中,两者都是不同的。
答案 2 :(得分:1)
如果您的目标是在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);
}
源: