- ベストアンサー
VB.NET SQL SERVER COMPACT EDITIONでのデータベース挿入方法
- VB.NETにてWindowsMobile5.0の開発をしております。SQL SERVER COMPACT EDITIONを使ってデータベースの開発に取り掛かっておりますが経験が全くなく非常に手こずってます。
- ユーザーが自由に名前や値を変更できる仕様なので挿入するデータを可変的に設定したい場合どうすれば良いのですか。下記のZ1,A1,0.001等を変数にして可変にしたいです。' データを挿入します。sql = 'INSERT INTO Zahyou (RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES ('Z1','A1','1.000','2.000','3.000','4.000','5.000','6.000','7.000')'
- 年末までに仕上げなければならず非常に困ってます。どうかお助けて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Dim A As String = 100 Dim B As String = 200 Dim C As String = 300 sql = "INSERT INTO Zahyou " & _ "(RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES (" & _ "A","B","C")" の場合に RECNO,TNAME,Xに対して 100,200,300を代入したいのであれば sql = INSERT INTO Zahyou " & _ "(RECNO,TNAME,X) VALUES (" & _ "'" & A & "','" & B & "','" & C & "')" といった具合になります 変数を『"』で括るわけではありません また、代入する列が文字列を必要としているのか、数値を必要しているのかで『'』でくくるかどうかも決まります
その他の回答 (2)
- redfox63
- ベストアンサー率71% (1325/1856)
http://oshiete1.goo.ne.jp/qa4559296.html のお礼に書かれたコメントですが 根本的な勘違いがありそうです コンボボックスにデータを登録する際に使った SQLと同じ文なら動作すると思いますが 普通は SELECT 欲しいフィールド FROM TABLE WHERE フィールド = 対象値 といったSQLを構築して投げるようにしますよ こうすれば 無駄なデータの取得をしなくて済みます
お礼
他の質問まで回答して頂き誠にありがとうございます。 確かに前の記述だと全ての要素を抽出して表示させたい所でFORで止めるとなっていたと思います。 ご指摘ありがとうございます。
- redfox63
- ベストアンサー率71% (1325/1856)
sqlの構築を工夫するだけではないのですか? sql = "INSERT INTO Zahyou " & _ "(RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES (" & _ "'" & vaRECNO & "','" & vaTNAME & "','" & vaX & "','" & _ vaY & "','" & vaZ & "','" & vaR & "','" & vaI & "','" & _ vaA1 & "','" & vaA2 & "'" & _ ")" といった具合で ・・・
お礼
回答ありがとうございます。 まずはっきりさせておきたいのですがプログラムからSQL構文を使うと”ダブルコーテーション”にて記述する。 そうした場合、”ダブルコーテーション”内は変数などは変数とみなされない。 しかし変数としたい場所は頭に「va」と記述すると変数とみなされるで正しいでしょうか? その場合変数へ代入する方法はどうすればよいでしょうか? 上記記述の前に代入するのでしょうか? RECNO = 100とかでいいでしょうか?^^; 宜しくお願いします。
補足
例えば Dim A As String = 100 Dim B As String = 200 Dim C As String = 300 sql = "INSERT INTO Zahyou " & _ "(RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES (" & _ "A","B","C")" こういうことをするにはどうすればいいですか?
お礼
回答ありがとうございます。 上手く出来ました。