0

データテーブルから上位 5 行を選択したかったのです。

そのために、次のクエリを使用しました。

DTResult
    .Rows
    .Cast(Of System.Data.DataRow)()
    .Take(Integer.Parse(ddlPage.SelectedValue.ToString()))

しかし、次のエラーが表示されます:

cast is not a member of system.data.rowcollection

キャストを削除して、次のようにしました。

DTResult.AsEnumerable.Take(Integer.Parse(ddlPage.SelectedValue.ToString()))

しかし、どちらの場合もエラーが発生し、次のことも発生します。

それは自動提案ではありません.Take()

助けてください。

4

2 に答える 2

1

LINQ (Take()または などCast()) とDataTableExtensions ( などdataTable.AsEnumerable()) を使用するには、適切なアセンブリを参照し、適切な名前空間をインポートしていることを確認してください。

アセンブリはSystem.Core.dllLINQSystem.Data.DataSetExtensions.dll用と DataTableExtensions 用です。

必要な名前空間はSystem.LinqSystem.Data.

于 2013-09-20T07:27:23.073 に答える
0

フレームワーク 3.5 では、

dt.Rows.Cast<System.Data.DataRow>().Take(5)

それ以外の場合は、次のコードを使用します

 public DataTable  SelectTopDataRow(DataTable dt, int count)
{
 DataTable dtn = dt.Clone();
 for (int i = 0; i < count; i++)
 {
     dtn.ImportRow(dt.Rows[i]);
 }

 return dtn;
}
于 2013-09-20T07:22:14.323 に答える