C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: NULL値判定する方法


(過去ログ 14 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■4724 / inTopicNo.1)  NULL値判定する方法
  
□投稿者/ matu (5回)-(2007/06/23(Sat) 13:55:34)

分類:[C# (Windows)] 

2007/06/23(Sat) 14:11:18 編集(投稿者)
2007/06/23(Sat) 14:01:31 編集(投稿者)

C#で
データリーダからかえってくる値がNULL
の場合ってどうやって判定して処理をかけば
いいんでしょうか

ss["datetime"]==Convert.DBNullなんじゃだめでしょうか?

お願いします

存在しないでーたを読み取ろうとしましたになります

NULL値というか存在しないデータを読み取ろうとしました。
なのでNULLすらかえってきてないんでしょうか」
引用返信 編集キー/
■4725 / inTopicNo.2)  Re[1]: NULL値判定する方法
□投稿者/ じゃかるた (19回)-(2007/06/23(Sat) 14:14:48)
>NULL値というか存在しないデータを読み取ろうとしました。
>なのでNULLすらかえってきてないんでしょうか」
おそらくそうだと思いますよ。
ブレイクポイントをおいて中を見てみては?
引用返信 編集キー/
■4726 / inTopicNo.3)  Re[2]: NULL値判定する方法
□投稿者/ matu (6回)-(2007/06/23(Sat) 14:31:28)
「DateTime dt = DateTime.Now;
SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["sqlConnection"]);
connection.Open();
SqlCommand d = new SqlCommand("SELECT TOP 1 DATEADD(second,1 ,datetime) datetime FROM tb_aaa ",connection);			

			
SqlDataReader s = d.ExecuteReader();
s.Read();

time = s["datetime"]==Convert.DBNull?"":s["datetime"].ToString();
」
でつくりました
クエリアナライザでSQLを実行するとdatetimeが何もない状態です
これはNULLってことでデータリーダでもNULLとして判断されるってわけじゃないんですか?
ない場合はなにもかえってこないってことなんでしょうか?
その場合これはどうやってNULLの場合の処理をすればいいんでしょうか
お願いします

引用返信 編集キー/
■4727 / inTopicNo.4)  Re[3]: NULL値判定する方法
□投稿者/ matu (7回)-(2007/06/23(Sat) 14:52:37)
試しましたがたぶん
NULLすらかえってきてないので存在しないデータと出るんだと思います。
存在しない場合の処理はキャッチで受け取っての処理をすればいいってことでしょうか?

それいがいのほうほうはありませんでしょうか
お願いします
引用返信 編集キー/
■4728 / inTopicNo.5)  Re[3]: NULL値判定する方法
□投稿者/ iwaiwa (26回)-(2007/06/23(Sat) 14:52:53)
こんにちは。

> SqlCommand d = new SqlCommand("SELECT TOP 1 DATEADD(second,1 ,datetime) datetime FROM tb_aaa ",connection);

SQL文の箇所が気になります。DATEADD(second,1 ,datetime) datetime の部分ですが…
引用返信 編集キー/
■4729 / inTopicNo.6)  Re[4]: NULL値判定する方法
□投稿者/ もねを (11回)-(2007/06/23(Sat) 15:20:54)
SQLで計算するだけなら
SELECT DATEADD(day,1 ,getdate()) datetime
こちらのSQL文だけではだめですか?テーブル名をはずしてしまっては?
SQL文は正常に行われるけど結果が何も返ってきていないとか・・・
方向間違っていればすみません。


引用返信 編集キー/
■4730 / inTopicNo.7)  Re[5]: NULL値判定する方法
□投稿者/ matu (8回)-(2007/06/23(Sat) 15:22:56)
2007/06/23(Sat) 15:24:48 編集(投稿者)
2007/06/23(Sat) 15:24:44 編集(投稿者)

返信ありがとうございます

>SQL文の箇所が気になります。DATEADD(second,1 ,datetime) datetime の部分ですが…

この部分はあまり関係ありません。
理由がわかりました。

select * でも何も出ない場合は行が存在しないって事でNULLでもないようです
一度カウントで0か1で値が1だった場合このすべての処理を書くように
してやってみます

ありがとうございました
解決済み
引用返信 編集キー/
■4731 / inTopicNo.8)  Re[4]: NULL値判定する方法
□投稿者/ 渋木宏明(ひどり) (241回)-(2007/06/23(Sat) 15:33:31)
渋木宏明(ひどり) さんの Web サイト
> 存在しない場合の処理はキャッチで受け取っての処理をすればいいってことでしょうか?

いいえ。Read() の戻り値を見て判定するのが常道です。

引用返信 編集キー/
■4732 / inTopicNo.9)  Re[5]: NULL値判定する方法
□投稿者/ じゃかるた (21回)-(2007/06/23(Sat) 17:01:16)
>一度カウントで0か1で値が1だった場合このすべての処理を書くように
>してやってみます
0か1しかないのであれば、これでよいと思うのですが?
カウントをとるクエリは必要でしょうか?
if (s.Read())
{
//取得データがある場合の処理
}

引用返信 編集キー/
■4733 / inTopicNo.10)  Re[6]: NULL値判定する方法
□投稿者/ iwaiwa (27回)-(2007/06/23(Sat) 17:12:38)
普通は
while (s.Read())
{

}
とかで取得しますね。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -