- - PR -
DataViewでの抽出
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-10 12:12
DataViewで、11月16日〜12月15日といった指定した日付の取得を行いたいのですが、
抽出条件が分かりませんので教えてください。BETWEENが利用できず困っています。 //[実績M]テーブルのレコードを取得してデータセットに格納する da = new System.Data.OleDb.OleDbDataAdapter( "SELECT 社員No,日付 FROM 実績M", cn); da.Fill(ds, "実績M"); // 表示するレコードをDataViewに取得する dv = new DataView(ds.Tables["実績M"] ,"","", DataViewRowState.CurrentRows); // DataGridコントロールにDataViewの内容を表示する dataGrid1.DataSource = dv; | ||||||||
|
投稿日時: 2006-01-10 12:26
型にもよるんだけど、Whereに(日付>='11/16') AND (日付<='12/15')を書くとか。 | ||||||||
|
投稿日時: 2006-01-10 15:58
お世話になります。
ぶさいくろうさんも書かれていますが、 [日付]のデータ型が、日付の型であれば、 こんな感じでしょうか。 DataView dv = new DataView(ds.Tables["実績M"], "[日付] >= '2005/11/15' AND [日付] <= '2005/12/15'", "", DataViewRowState.CurrentRows); this.dataGrid1.DataSource = dv; | ||||||||
|
投稿日時: 2006-01-10 16:32
ありがとうございました。おかげさまで抽出することができました。
もうひとつ聞きたいことがあるんですが、 16日〜31日の日付と曜日を表示させようと思っています。 16日の日付から、曜日を取得し、後はDayOfWeekをずらして表示しようと考えています。 しかし、+1をすると 金から土になるのはいいのですが、それ以降変わりません。 どこがおかしいですか?すみませんがよろしくお願いします。 DateTime today=new DateTime(2005,12,16); string[]weeks={"(日)","(月)","(火)","(水)","(木)","(金)","(土)"}; // DataSetのテーブルにレコードを追加する for(i=16; i<=31; i++) { dt.Rows.Add(new object[]{i + " " + weeks[((int)today.DayOfWeek)+1]}); } | ||||||||
|
投稿日時: 2006-01-10 17:41
DayOfWeek 列挙体のメンバに割り当てられた数値を見れば一目瞭然なのですが、 土曜日 (Saturday = 6) 以降は 日曜日 (Sunday = 0) に戻さないといけませんね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-10 18:01
0に戻すのは、分かってたんですが、表示させると
16 (水) 17 (水) 18 (水) となってしまいます。お手数をおかけしますが、最後にこれだけ教えてください。本当に困っています。 | ||||||||
|
投稿日時: 2006-01-10 18:15
todayに1日加算してるんじゃなくて、(int)today.DayOfWeekに1を加算してるからじゃないですか? [追記] 一応リンク DateTime.AddDays メソッド [ メッセージ編集済み 編集者: でっち6号 編集日時 2006-01-10 18:35 ] | ||||||||
|
投稿日時: 2006-01-10 18:39
お世話になります。
これではだめですかね...。
|