VB.NET SQL SERVER COMPACT EDITIONでのデータベース挿入方法

このQ&Aのポイント
  • 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')'
  • 年末までに仕上げなければならず非常に困ってます。どうかお助けて下さい。
回答を見る
  • ベストアンサー

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')" 年末までに仕上げなければならず非常に困ってます。 どうかお助けて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 & "')" といった具合になります 変数を『"』で括るわけではありません また、代入する列が文字列を必要としているのか、数値を必要しているのかで『'』でくくるかどうかも決まります

glee_sss
質問者

お礼

回答ありがとうございます。 上手く出来ました。

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

http://oshiete1.goo.ne.jp/qa4559296.html のお礼に書かれたコメントですが 根本的な勘違いがありそうです コンボボックスにデータを登録する際に使った SQLと同じ文なら動作すると思いますが 普通は SELECT 欲しいフィールド FROM TABLE WHERE フィールド = 対象値 といったSQLを構築して投げるようにしますよ こうすれば 無駄なデータの取得をしなくて済みます

glee_sss
質問者

お礼

他の質問まで回答して頂き誠にありがとうございます。 確かに前の記述だと全ての要素を抽出して表示させたい所でFORで止めるとなっていたと思います。 ご指摘ありがとうございます。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

sqlの構築を工夫するだけではないのですか? sql = "INSERT INTO Zahyou " & _   "(RECNO,TNAME,X,Y,Z,R,I,A1,A2) VALUES (" & _   "'" & vaRECNO & "','" & vaTNAME & "','" & vaX & "','" & _   vaY & "','" & vaZ & "','" & vaR & "','" & vaI & "','" & _   vaA1 & "','" & vaA2 & "'" & _   ")" といった具合で ・・・

glee_sss
質問者

お礼

回答ありがとうございます。 まずはっきりさせておきたいのですがプログラムからSQL構文を使うと”ダブルコーテーション”にて記述する。 そうした場合、”ダブルコーテーション”内は変数などは変数とみなされない。 しかし変数としたい場所は頭に「va」と記述すると変数とみなされるで正しいでしょうか? その場合変数へ代入する方法はどうすればよいでしょうか? 上記記述の前に代入するのでしょうか? RECNO = 100とかでいいでしょうか?^^; 宜しくお願いします。

glee_sss
質問者

補足

例えば 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")" こういうことをするにはどうすればいいですか?

関連するQ&A

  • VB.NET SQL SERVER COMPACT EDITION2

    VB.NETにてWindowsMobile5.0の開発をしております。 SQL SERVER COMPACT EDITIONを使ってデータベースの開発に取り掛かっておりますが経験が全くなく非常に手こずってます。 下記のようにリストボックスへ列の1要素を表示させます。 While dtr.Read() Dim lb As String lb = dtr("TNAME").ToString() LB_TEN.Items.Add(lb) End While リストボックスで要素の一つが選択されるとその要素の関連項目をテキストボックスに表示させるプログラムを組みたいのですがどうすればよいのでしょうか? LB_TEN.SelectedIndexで選択された要素を取得しRead()でデータベースから引き出すと言う方法を考えましたがイマイチRead()の使い方が分かりません。 ほかにいい方法があるのでしょうか? ご教授のほどよろしくお願いします。 年末までに仕上げなければならず非常に困ってます。 どうかお助けて下さい。

  • SQLでできますか?

    SQLでできますか? INSERT INTO test (A) VALUES (B)というSQLを発行したいのですが、このSQLのVALUESのBにあたる部分を正規表現的に指定して、一度のクエリで以下のような結果を得たいのです。 1.テーブルhogeのpiyoカラムの値の先頭がappleになっている行を探す。 2.(1.)で抽出した行のidの値をBとする。 例えば、以下のようにです。 ■皆様が回答してくださるSQL文(1クエリで行いたい) ???????????? ■皆様が回答してくださるSQL文と同等の意味を持つSQL群 INSERT INTO test (A) VALUES (100) INSERT INTO test (A) VALUES (101) INSERT INTO test (A) VALUES (102) ■テーブルhoge _____id_____piyo__________created 1. 100 applebanana 2009/01/02 2. 101 apple_12345 2009/01/03 3. 102 appleXXXXXX 2009/01/04 4. 103 bananananan 2009/01/05 5. 104 ringogogogo 2009/01/06 分かりにくい説明ですが、お詳しい方、どうかご回答の程を宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • SQL Server 2005 Compact Editionのプログラミング(初心者)

    現在PDA(スマートフォン)によるアプリケーション開発に携わっています。PDAを用いて不特定多数に対し街頭調査をし、膨大ととなった情報をうまくまとめられたらと思い、Visual Studio 2005でソフトウェアを構築しています。しかし、プログラミングは初心者なので進行は遅いです。データを格納するデータベースとしてSQL Server 2005 Compact Editionの存在を知り、今はその勉強中です。しかし、なかなか良い参考書が見つかりません。MSDNのホームページを探していますが、うまく見つけられませんでした。 SQL Server 2005 Compact Editionを利用したPDAのプログラミングについて何か知っている方がいらっしゃいましたら、教えていただけると幸いです。

  • SQL Server + VB の開発において

    こんにちは。 SQL Server + VB で開発をしているのですが、下記のソースの ★の部分でエラーが発生するのですが、回避策がわからなくて 困っています。(T T) 'udlパス名 strPath = パス 'コネクション 設定 objCnn.ConnectionString = strPath objCnn.Open 'トランザクション開始 objCnn.BeginTrans 'SQL作成(列名分 データを設定) strSql = "Insert Into User.TableName Values ('2004','02','18')" 'SQL実行★ objCnn.Execute strSql 'エラー判定 If objCnn.Errors.Count > 0 Then objCnn.RollbackTrans Else objCnn.CommitTrans End If エラーNo.:-2147467259 エラーメッセージ:手動または分散トランザクション モードのため、新規接続を作成できません。 別のアプリでSQLは実行できたので、SQLの文法エラーというのは考えにくいので、VBでの操作の仕方が 問題だとは思うのですが、分かる方お願いいたします。m(_ _)m

  • SQLサーバに日付と時間を入れる

    ASP(VBScript)でSQLサーバに日付と時間を以下のように記述して実行しても うまくいきません。正しい記述方法をお分かりの方教えて ください。 SQL="INSERT INTO master(日付) VALUES('" & "#" & Now & "#')"

  • 一括でINSERTする方法(PL/SQL)

    PL/SQLを利用して、下記3つのSQLを一括でinsertしたいと思います。 (値は、任意でありません。) PL/SQLに関して、初心者なので、どのように記述してよいか 分かりません。 サンプル的なソースを用いて解説して頂けるとありがたいです。 (1)INSERT INTO tb1(列1, 列2) VALUES('値1','値2') (2)INSERT INTO tb1(列1, 列2) VALUES('値3','値4') (3)INSERT INTO tb1(列1, 列2) VALUES('値5','値6')

  • PHPによるSQL文の中にPHP処理を記述するには

    PHP内のSQL発行部分の $QUERY="     INSERT     INTO         TABLE     (         `FIELD_A`,         `FIELD_B`,         `FIELD_C`     ) values (         `{$DATA[1]}`,         `{$DATA[2]}`,         `{$DATA[3]}`     ) "; このようなクエリを $QUERY="     INSERT     INTO         TABLE     (         `FIELD_A`,         `FIELD_B`,         `FIELD_C`     ) values (         `{$DATA[($i++)]}`,         `{$DATA[($i++)]}`,         `{$DATA[($i++)]}`     ) "; のような感じにしたいのですが うまくいきません。 どうすれば、クエリー文の中で$i++等の処理を 含まさせることができるでしょうか?

    • ベストアンサー
    • PHP
  • A5:SQL Mk-2でテーブルは作れないのか?

    xamppとA5:SQL Mk-2ソフトを組み合わせてます。 phpmyadminでデータベースとテーブルを作ってMk-2でsql文 例としてselecto * from aaa;などは動きます。 しかしMk-2で CREATE TABLE shiire(scode CHAR(4),kosuu INT,sdate CHAR(7)); INSERT INTO shiire VALUES ('A002',35,'2003-04'); INSERT INTO shiire VALUES ('B002',24,'2003-05'); は作れません。phpmyadminのクエリでは作れます。 ご教授ください。

    • ベストアンサー
    • MySQL
  • tutorial/funcs.sqlの中のSQL文

    の中に CREATE TABLE EMP ( name text, salary integer, age integer, cubicle point ); INSERT INTO EMP VALUES ('Sam', 1200, 16, '(1,1)'); INSERT INTO EMP VALUES ('Claire', 5000, 32, '(1,2)'); INSERT INTO EMP VALUES ('Andy', -1000, 2, '(1,3)'); INSERT INTO EMP VALUES ('Bill', 4200, 36, '(2,1)'); INSERT INTO EMP VALUES ('Ginger', 4800, 30, '(2,4)'); -- the argument of a function can also be a tuple. For instance, -- double_salary takes a tuple of the EMP table CREATE FUNCTION double_salary(EMP) RETURNS integer AS 'SELECT $1.salary * 2 AS salary' LANGUAGE SQL; SELECT name, double_salary(EMP) AS dream FROM EMP WHERE EMP.cubicle ~= '(2,1)'::point; というコードが有るのですが 最後のWHERE EMP.cubicle ~= '(2,1)'::pointの ~= はどういうもので どんなときにつかうのでしょうか? また単なる = ではエラーになるようなのですが=との使い分けはどのようにすれば良いのでしょうか? よろしくお願いします

  • 指定された趣味を持つメンバーがいるグループを抽出するSQL

    グループテーブル、メンバーテーブル、趣味テーブルの3つのテーブルがあります。 あるメンバーはあるグループに属しており、趣味を1つ持っています。 以下がそのSQLです。 CREATE TABLE groups ( g_id int primary key ); CREATE TABLE members ( m_id int primary key , g_id int , h_id int ); CREATE TABLE hobbies ( h_id int primary key, h_name text ); INSERT INTO groups VALUES ( 1 ); INSERT INTO groups VALUES ( 2 ); INSERT INTO groups VALUES ( 3 ); INSERT INTO members VALUES ( 1, 1, 1); INSERT INTO members VALUES ( 2, 1, 3); INSERT INTO members VALUES ( 3, 1, 4); INSERT INTO members VALUES ( 4, 1, 4); INSERT INTO members VALUES ( 5, 2, 1); INSERT INTO members VALUES ( 6, 2, 2); INSERT INTO members VALUES ( 7, 2, 3); INSERT INTO members VALUES ( 8, 3, 2); INSERT INTO members VALUES ( 9, 3, 3); INSERT INTO members VALUES ( 10, 3, 4); INSERT INTO hobbies VALUES ( 1, 'sports' ); INSERT INTO hobbies VALUES ( 2, 'music' ); INSERT INTO hobbies VALUES ( 3, 'book' ); INSERT INTO hobbies VALUES ( 4, 'drive' ); 指定された趣味を持つメンバーがいるグループを抽出するにはどうすればいいでしょうか? 例えば、「読書が趣味なメンバーとドライブが趣味なメンバーがいるグループは?」「グループ1とグループ3」のような感じです。 一応自分で考えてみたのが、以下ですが、これだと趣味の指定が増減すると大きくSQLが変わってしまいます。 もっといいやり方はないでしょうか? 私はPostgreSQL8を使ってますが、汎用的なSQLであれば、そっちの方がいいです。 SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'drive' INTERSECT SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'book';

専門家に質問してみよう