- - PR -
SELECT文の結果を、IF文で使いたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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' はどう変換すればよいのですか? それとも他に方法があるのでしょうか?? | ||||
|
投稿日時: 2006-05-18 18:01
とりあえず、cmd.ExecuteScalar()などを実行して、SQLの結果を取得してください。
| ||||
|
投稿日時: 2006-05-18 18:32
さかもとです。
burton999様がおっしゃるように、SQL文の結果を取得する場合(この場合はInteger型) は [code] If CInt(cmd.ExecuteScalar) = 0 Then '色々な処理 End If [/code] などとして数値の判定を行います。 | ||||
|
投稿日時: 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 追加のコードをいれたところ、思う処理ができました。 お二方本当にありがとうございます。 | ||||
|
投稿日時: 2006-05-18 20:28
さかもとです。
念のためですが、 if cnt=0 ですよね? 恐らくコピペのミスだとは思いますが念のためです。 単なるミスだったら無視してください。 | ||||
|
投稿日時: 2006-05-18 22:55
ExecuteScalar メソッドの戻り値が有効な値であるか、 または、評価対象と互換のある型かを検証する必要があると思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1