アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQL文がDouble型として認識される

質問させて頂きます。
ユーザーのポイントを引き算し、SQLにアップデートするプログラムを組んでいます。
実行すると

String "UPDATE 「テーブル名」 SET 「要素名(Integer)」 " から型 'Double' への変換は無効です。

というエラーが出るのですが、SQL文の部分を何故Doubleに変換するのでしょうか?
デバッグにて変数を確認し、String等をいれてみても同じエラーが出る上
SQL文は他の部分で正常に動いているものをコピーしても同じエラーが出ます。

INSERT INTO テーブル名(要素) VALUES(xxx)"であれば
「String "INSERT INTO テーブル名(要素) VALUES」 " から型 'Double' への変換は無効です。」
となります。

SQL文の記述が間違っているとは思えず、VBの記述の問題としてここで質問させて頂きました。
コードは以下の通りで、環境はVB2010 + SQL Server2008です。
回答して頂くために不足している情報がありましたらすぐに追記致します。
至らない文章ではありますが、どうかよろしくお願い致します。

Dim point As Integer
point = point(Integer型) - price(Integer型)

Dim strSQL As String = "UPDATE 「テーブル名」 SET 「要素(Int型)」 = '" + point + "' WHERE UserID = '" + userid(String型) + "'"

cn.ConnectionString = My.Settings.ServerURL
Dim cmd4 As New SqlCommand(strSQL, cn)

cn.Open()
cmd4.ExecuteNonQuery()
cn.Close()

A 回答 (1件)

SQLの問題ではありません。


これと同じです。

Dim s As String = ""
Dim i As Integer = 0

s = "aaa" + i + "bbb" '<--- ここでエラー


これを回避するには、
s = "aaa" + i.ToString + "bbb" 
又は、
s = "aaa" & i & "bbb"
です。

文字列の結合には、+ を使わずに & を使うことをお勧めします。

フィールド 要素はInt型ですので、
'" & point & "' の前後のシングルクォーテーションは不要です。
    • good
    • 0
この回答へのお礼

わかり易い例まで出して頂き、本当にありがとうございます
二番目の方法ですぐに解決できました。

お礼日時:2010/09/14 20:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!