1

Datatable をフィルター処理したいのですが、動作しますが、DateTime を検索するとエラーが発生します。

これが私のコードです。私は何をしたのですか?

 DataTable tb = DataBaseManager.GetRadiusDataTable(radiusconnectionstring, "marksullivan"); 

DataRow[] filteredRows = tb.Select("AcctStartTime LIKE '%" + searchstring + "%' OR AcctStopTime LIKE '%" + searchstring + "%' OR FramedIPAddress LIKE '%" + searchstring + "%'");
tb = filteredRows.CopyToDataTable();
this.ListView.DataSource = tb;
this.ListView.DataBind();

AcctStartTime:datetime AcctStopTime :datetime FramedIPAddress : varchar

The error: The Operation 'Like' could not to System.DateTime and System.String execute.

これどうやってするの?

4

1 に答える 1

10

RowFilter の DateComparision のように試してください

string filter = $"DateFrom > '{daDateFrom}' AND DateTo <= '{daDateTo}'";
tb.Select(filter)

またはDataRow フィルターから

日付値はシャープ文字 # # で囲みます。日付形式は、インバリアントまたは英語カルチャの DateTime.ToString() メソッドの結果と同じです。

[C#]

dataView.RowFilter = "Date = #12/31/2008#"          // date value (time is 00:00:00)
dataView.RowFilter = "Date = #2008-12-31#"          // also this format is supported
dataView.RowFilter = "Date = #12/31/2008 16:44:58#" // date and time value
于 2013-01-24T10:10:57.053 に答える