我正在使用以下代码将 n 行从 DataTable 返回到另一个 DataTable 对象。当第一个数据表记录来自数据库时,它工作正常,但是当我在数据表中手动添加记录时,它会崩溃并且一条消息不显示任何行。我已经调试过,发现currentTable.DefaultView.ToTable().Rows.Cast<DataRow>()
这将返回空值。我编写了以下代码来从 DataTable 对象中选择 n 条记录
currentTable = currentTable.DefaultView.ToTable().Rows.Cast<DataRow>().Take(numberOfRecord).CopyToDataTable();
我不知道为什么当我手动创建 DataTable 并在记录来自 DataReader 到 DataTable 时工作正常时它会崩溃。
我正在使用以下代码手动创建 DataTable
DataTable tblCurrent = new DataTable();
//For Adding columns
for (int i = 0; i < fieldCol.Length; i++)
tblCurrent.Columns.Add(string.Format("Column{0}", i + 1));
//for adding rows.
for (int i = (count + globalClass.sourceConnectionInfo.RowsToSkip); i < lineRows.Length; i++)
{
DataRow newRow = tblCurrent.NewRow();
for (int j = 0; j < fieldCol.Length; j++)
newRow[j] = fieldCol[j];
tblCurrent.Rows.Add(newRow);
}
//Then for selecting n records
if (currentTable.Rows.Count > 0)
tblCurrent = tblCurrent.DefaultView.ToTable().Rows.Cast<DataRow>().Take(numberOfRecord).CopyToDataTable();