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

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

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

VB6のSQL文をVB2019に移植

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

■95306 / inTopicNo.1)  VB6のSQL文をVB2019に移植
  
□投稿者/ 工場プログラマー (30回)-(2020/07/13(Mon) 13:44:33)

分類:[.NET 全般] 

2020/07/13(Mon) 13:50:33 編集(投稿者)
VB2019を使っています。
VB6で作ったソースをVB2019に移植しているのですが

VB6
If rs!区分 = "見積中" Then

VB2019
If rs.Fields("区分").Value = "見積中" Then

でエラーになります。
'演算子'='は型'DBNull'と文字列"見積中"に対して定義されていません。といわれているのですが、これはソースが間違っているのでしょうか?
それともVB6のほうではNullが混じっていても読み取ってくれたりする仕様ですか?

引用返信 編集キー/
■95307 / inTopicNo.2)  Re[1]: VB6のSQL文をVB2019に移植
□投稿者/ WebSurfer (2085回)-(2020/07/13(Mon) 13:49:50)
No95306 (工場プログラマー さん) に返信

> VB6のSQL文をVB2019に移植

あなたの言う SQL 文とは何ですか?
引用返信 編集キー/
■95308 / inTopicNo.3)  Re[2]: VB6のSQL文をVB2019に移植
□投稿者/ 工場プログラマー (31回)-(2020/07/13(Mon) 13:52:45)
2020/07/13(Mon) 14:02:03 編集(投稿者)

No95307 (WebSurfer さん) に返信
> あなたの言う SQL 文とは何ですか?

すいません。
質問している場所はSQL文を使っていませんでした。
引用返信 編集キー/
■95309 / inTopicNo.4)  Re[1]: VB6のSQL文をVB2019に移植
□投稿者/ みい (116回)-(2020/07/13(Mon) 14:06:51)
2020/07/13(Mon) 16:05:28 編集(投稿者)
2020/07/13(Mon) 14:15:37 編集(投稿者)

VB6 : Null 値を含む式は式自体がNull値となり、False扱い
.NET以降 : Null値に対する式はエラー(型の不一致)扱い

だったはず

(追記)
https://oshiete.goo.ne.jp/qa/4940982.html
の回答No.2に説明がありました
引用返信 編集キー/
■95310 / inTopicNo.5)  Re[2]: VB6のSQL文をVB2019に移植
□投稿者/ 工場プログラマー (32回)-(2020/07/13(Mon) 15:13:27)
No95309 (みい さん) に返信

> VB6 : Null 値を含む式は式自体がNull値となり、False扱い
> .NET以降 : Null値に対する式はエラー(型の不一致)扱い

ありがとうございます。
常にテストするのは大変だと思いますが頑張ってみます。


解決済み
引用返信 編集キー/
■95311 / inTopicNo.6)  Re[3]: VB6のSQL文をVB2019に移植
□投稿者/ mangan (1回)-(2020/07/13(Mon) 16:30:50)
ちなみに、ボクなら、

If "" & rs.Fields("区分").Value = "見積中" Then
のように、空文字""と文字連結して、無理やりStringにしてしまいます。
対象がNothingでもDBNullでもOKです。
引用返信 編集キー/
■95312 / inTopicNo.7)  Re[4]: VB6のSQL文をVB2019に移植
□投稿者/ 工場プログラマー (33回)-(2020/07/14(Tue) 09:07:40)
No95311 (mangan さん) に返信
> ちなみに、ボクなら、
>
> If "" & rs.Fields("区分").Value = "見積中" Then
> のように、空文字""と文字連結して、無理やりStringにしてしまいます。
> 対象がNothingでもDBNullでもOKです。

なるほど、それなら応用できそうですね。
ありがとうございます。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ