- PR -

「今日」だけ表示ができない

投稿者投稿内容
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2006-10-03 16:55
データはどうでしょう。

編集後の「strSelectCommand」に入っているSQLを、直接手作業で実行してみて
ください。

うまくいくSQLと確認できたならば、C#での編集をせず、直接代入でSQLを
「strSelectCommand」
に入れて実行してみてください。

_________________
たつごろー
codeseek
こみゅぷらす
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2006-10-03 17:07
ご回答ありがとうございます。

strSelectCommandの文字列を結合したあとで、

TextBox1.Text = strSelectCommand;

と記述し、このTextBox1に表示された内容をそのままクエリとして実行してみましたが、やはり結果は正常に表示されました。

まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-10-03 17:11
ぽぴ王子さんも言われてますが、
テーブルの「日付」の型はいったい何なんでしょう?
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2006-10-03 17:17
>まどかさん

データベースに格納されているのはDateTime型です。
全てのデータが2004年で、時間は0:00:00で格納されています。
そのため「タイトル」と連結キーに設定しています。

ちなみに2004年である理由は、日付を含めたデータを格納する際に、
「うるう日」がある年であることが望まれたためです。


[ メッセージ編集済み 編集者: Wingard 編集日時 2006-10-03 17:19 ]
まりも
ベテラン
会議室デビュー日: 2006/08/19
投稿数: 77
投稿日時: 2006-10-03 17:44
一行ずつ確かめてみる、というよい意見が出ていましたが、
いまひとつ採用されていない雰囲気を感じるような。

具体的に説明すべきかな。

とりあえず。ブレークポイントで実行をとめて、
変数の中身を見ることはできるのですね?

できるなら。

うまくいく場合とうまくいかない場合についてそれぞれ。

まず一行目でとめて、MemTempの中身には何が入っていますか?

次に。
string DateTemp = MemTemp.ToString("2004/MM/dd 0:00:00");
の次の行でとめて。
DateTempには何が入っていますか?

MemTemp = DateTime.Parse(DateTemp);
の次の行でとめて。
MemTempには何が入っていますか?

strSelectCommand += "'" + MemTemp + "'";
の次の行でとめて。
MemTemp.ToString()の値はどうなっていますか?(ToStringは、明示的に呼び出さなくても暗黙で呼び出されたはずです。)
strSelectCommandには何が入っていますか?

SqlDataSource1.SelectCommand = strSelectCommand;
の次の行でとめて。
SqlDataSource1.SelectCommandには何が入っていますか?

SqlDataSource1.SelectCommandに入っていたSQLをそのままデータベースに流すと、
どういう結果が得られますか?

という感じで一行一行よく見ながら進んでいくと、
結局早く解決することが多いですよ。

あとなんか、ちゃんと現在のコードをビルドしたdllが実行されているのか、なんとなく不安に思えるような状況なので。
一度クリーンを実行してみるなどしたほうがよいかもしれません。
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2006-10-03 18:04
接続先データベースサーバの時計とかタイムゾーンが
違ってました、ってオチはないよね?
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2006-10-03 18:15
>まりもさん
ご回答ありがとうございます。

>一度クリーンを実行してみるなどしたほうがよいかもしれません。
これはリビルドのことでしょうか?
http://msdn2.microsoft.com/ja-jp/library/5tdasz7h.aspx
こことかを参考にして探してみましたが、それらしい項目がありませんでした……。

>一行ずつ確かめてみる
手順として、起動直後は正常に今日のデータが表示されていますので、
起動>別の日付を表示>今日を表示
としましたが、

MemTempには 2004/10/03 0:00:00 と表示され、残りは全て
「SELECT タイトル,コメント FROM 情報 WHERE 日付='2004/10/03 0:00:00'」
と出てきました。
年や時間もチェックしましたが、全て2004年で0:00:00です。

一応基本的な切り分けは全て試したつもりなのですが……。
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2006-10-03 18:17
>vincentさん
もちろんすでに確認していますし、そもそもツールで入力していますので、それ以外の値が入る余地はありません。
また、もしサーバとクライアントの間で時間差があるとすれば、逆に今日のデータが最初だけ表示される理由がなくなります。

スキルアップ/キャリアアップ(JOB@IT)