@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

SELECT文の結果を、IF文で使いたい

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-05-18 17:53
お世話になります。
VisualStudio 2005 言語VisualBasic  SQLServerプロジェクト
で、現在作成中です。

Usingステートメントの中で SELECT COUNT 文をつくり、(0か1が返ります)
SELECT文の結果をIf文で使えるようにしたいです。
(0ならバックアップをし、1ならスルーする)


Using cnn As New SqlConnection("context connection=true")
cnn.Open()

Dim cmd As New SqlCommand("SELECT COUNT 〜〜〜", cnn)
If cmd = 0 Then

     バックアップ構文(省略)

End If
cnn.Close()
End Using


上記のコードで作成中ですが、
  >If cmd = 0 Then
のところで、

'='は、型 'System.Data.SqlClient.SqlCommand' および 'Integer' に対して定義されていません。

とエラーになります。
型 'System.Data.SqlClient.SqlCommand' はどう変換すればよいのですか?
それとも他に方法があるのでしょうか??
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-05-18 18:01
とりあえず、cmd.ExecuteScalar()などを実行して、SQLの結果を取得してください。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-05-18 18:32
さかもとです。
burton999様がおっしゃるように、SQL文の結果を取得する場合(この場合はInteger型)

[code]
If CInt(cmd.ExecuteScalar) = 0 Then
'色々な処理
End If
[/code]

などとして数値の判定を行います。
未記入
ベテラン
会議室デビュー日: 2006/04/14
投稿数: 55
投稿日時: 2006-05-18 19:25
burton999さん、さかもとさん、ご回答ありがとうございます。

Dim cmd As New SqlCommand("SELECT COUNT 〜〜〜", cnn)
 ’追加コード
Dim cnt As Integer
cnt = cmd.ExecuteScalar()

If cmd = 0 Then

 バックアップ構文(省略)

End If

追加のコードをいれたところ、思う処理ができました。
お二方本当にありがとうございます。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-05-18 20:28
さかもとです。

引用:


Dim cmd As New SqlCommand("SELECT COUNT 〜〜〜", cnn)
 ’追加コード
Dim cnt As Integer
cnt = cmd.ExecuteScalar()

If cmd = 0 Then ★ココ★

 バックアップ構文(省略)

End If




念のためですが、

if cnt=0

ですよね?
恐らくコピペのミスだとは思いますが念のためです。
単なるミスだったら無視してください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-18 22:55
引用:

nobuさんの書き込み (2006-05-18 19:25) より:

Dim cnt As Integer
cnt = cmd.ExecuteScalar()

If cmd = 0 Then
 バックアップ構文(省略)
End If


ExecuteScalar メソッドの戻り値が有効な値であるか、
または、評価対象と互換のある型かを検証する必要があると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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