1

datatable4 つの列があり、そのうちの 1 つはタイプsmalldatetimeです。datatableSQL ベースからデータテーブルを取得するときに、特定の時間までにさらにクエリを実行したいと考えています。これは可能ですか?

私はこのようなものを試しています:

DataRow[] rows = dataset.Tables[0].Select("resStart = 'some date '" + myTime+"'");

具体的には、データグリッドで日付と時刻をナビゲートしようとしているので、最終的にこのようなクエリで1行を取得する必要があります

DataRow[] rows = dataset.Tables[0].Select("resStart = '" + myDate +" " + myTime+"'");
4

2 に答える 2

1

sourceCode 内でデータをクエリする場合、 DataTableクラスはメソッド SELECTをサポートしています。これにより、特定の条件に従ってテーブルをフィルター処理できます。詳細な説明については、MSDNを参照してください。

string filterExpression = "YOUR_SMALLDATE_COLUMN > #1/1/00#";
DataRow[] rows = YOUR_DATATABLE_VAR.Select(filterExpression);

// eg. print out results - or rebind data etc.
for(int i = 0; i < rows.Length; i ++)
{
    Debug.WriteLine(rows[i]["ANY_COLUMN_NAME"]);
}

もちろん、select ステートメントをデータベースに変更し、 whereClauseを追加することもできます。

于 2012-09-05T10:50:11.560 に答える
1

これは可能ですか?

はい、もちろん。たとえば、Linq-To-DataSet を使用して:

var thisYearsRows = table
    .AsEnumerable()
    .Where(r => r.Field<DateTime>("SmalldateTimeField").Year == DateTime.Now.Year);

using System.Linq;への参照を追加する必要がありますSystem.Data.DataSetExtensions.dll

于 2012-09-05T10:52:37.920 に答える