• ベストアンサー
  • すぐに回答を!

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
  • 閲覧数715
  • ありがとう数3

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

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

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 & "')" といった具合になります 変数を『"』で括るわけではありません また、代入する列が文字列を必要としているのか、数値を必要しているのかで『'』でくくるかどうかも決まります

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連する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 Server 2005 Compact Editionのプログラミング(初心者)

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

  • Compact 3.5とVS2012

    SQL Server Compact 3.5 SP2について教えてください。 現在、SQL Server 2008R2で運用されているWebアプリケーションシステムがあります。 ASP.NETで作られており、データアクセスはLINQ for SQLで動作しています。 今回、ちょっとしたサーバ移転があり、データアクセスの頻度がさほど高くない理由から、SQL Server Compact 3.5での稼働を計画しています。 (Compact 4.0だとLINQが動作しないらしいので) で、開発環境(VS2012)にてSQL CE3.5のファイルを作ろうとしたところ、サーバエクスプローラのプロバイダ選択画面で、CE3.5も4も出てきません。 (通常のSQL Serverや、mdf形式のSQL Serverプロバイダは正しく出てきます) そこで質問なのですが、 ・SQL Server CE3.5はVisual Studio 2012に対応しているのでしょうか? ・皆さんのVisual Studio 2012では、SQL Server CEをデータプロバイダとして、サーバエクスプローラを動作させることができますか? よろしくお願いします。

その他の回答 (2)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

  • 回答No.1
  • 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")" こういうことをするにはどうすればいいですか?

関連するQ&A

  • データベースに変数の値を挿入

     HTMLのフォームから、getParameterで取得した値(id,name,club)をデータベースに挿入したいのですが、 String sql="insert into test_table values(id,name,club)";  と記述してもその文字列がそのままテーブルに反映されてしまいます。  もちろん、 String sql="insert into test_table values('12','●田○郎','野球部')"; とあらかじめ記述しておけばこのデータがテーブルに挿入されるのですが・・・。  PHPでは確かvalues('{$id}','{$name}','{$club}')のように記述すればできたので戸惑っています。  JAVAでSQL文に変数を含める場合、どのように記述すればいいのでしょうか?

    • ベストアンサー
    • Java
  • SQL Serverへの接続

    下記の環境で開発をすることになりました。 開発言語:Borland C++Builder Professional Ver 5.0 データベース:Microsoft SQL Server2005 SQL Serverの文献を購入したところ、SQL Server2005へ通信するアプリケーションの作成には「.NET Framework Data Provider for SQL Server (SqlClient)」が推奨と書いてあり、「System.Data.SqlClient名前空間を参照することにより一連のクラスを利用できます。」とあります。 そこで、色々調べたのですが、どうしても Borland C++ で System.Data.SqlClient名前空間を参照する方法がわかりません。 参考ソース、参考サイト、参考文献なんでもいいのでご存知の方がいましたら教えて下さい。 (VB.Net、C# などは色々なサイトがあったのですが・・・)

  • VB.NET オーナードロー

    VB.NETでWindowsMobile5.0の開発をしてます。 下記HPの内容をWindowsMobile(CompactFreamWork)で実現するにはどうすればよいでしょうか。 http://smdn.invisiblefulmoon.net/ikimasshoy/vbdotnet/ownerdraw.html ListBoxのItemで最初のサンプルの階段状のItemを実現したいです。 最終的には追加ボタンをクリックすると3つずつ階段状Itemが挿入されると言った事をしたいです。 宜しくお願いします。

  • 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 Server 2005 Express で CDate()関数の代替?

    SQL Server 2005 Expressで Create table Test( date_test datetime ); に追記する場合cdateを使いたいのですが Insert文で 「insert into test(date_test) values(CDate('1999/09/14 23:23:00'))」 とすると 「'CDate' は 組み込み関数名 として認識されません。」っと出てしまいます 他の関数名に変わっているのでしょうか??

  • postgreSQLでint8で設定された項目にデータを挿入したいのですが、教えて下さい。

    例えば、下記のようなテーブルを作成し、 create table testm ( data1 int8, data2 int8, data3 int8 ); 普通全ての項目に値があれば、1行挿入することができますが、 insert into testm values (1, 2, 3); もし、値がないのに、項目に挿入したい場合は、できるのでしょうか? insert into testm values (1, , 3); 教えて下さい。それが出来なかった場合の対処方法も教えて下さい。

  • 指定された趣味を持つメンバーがいるグループを抽出する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';

  • PostgreSQLのパフォーマンスについて質問です。

    PostgreSQLのパフォーマンスについて質問です。 INSERTを大量に行う処理の速度が遅いので、高速化をはかるため、INSERTを20個ずつまとめる修正を行いました。 基本的に速度は速くなったのですが、あるデータだけ逆に遅くなってしまいました。 その遅くなったデータはレコード数が膨大なのですが、まとめてINSERTをおこなうSQLを連続で発行したら、処理速度が遅くなることはあるのでしょうか? なお、INSERTは下記のように行っています。 INSERT INTO テーブル名 (列名群) VALUES (挿入データ群),(挿入データ群),・・・,(挿入データ群); また、すべてのテーブルにインデックスはついておらず、プライマリキーと外部キーが設定されています。 マシンスペックはCore2 Duo 2.53GHz、メモリ2GB、OSはWindows XPです。 よろしくお願いします。

  • 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
  • php postgres Insert と updateができない

    こんにちは、 現在、php5とpostgresql8でプログラムを行っています。 それで、 $sql = "INSERT INTO t_hoge (name) VALUES('hogesan')"; pg_exec($sql) と、テーブルにデータを入れているんですが、 エラーはでないのに何故かデータがテーブルにインサートできません。 また、アップデートで編集もできません。 しかし、SELECTで既に入力されているデータを読んでprint等で表示させると普通にデータは取れています。 また、telnet等で直接postgresに hoge=> INSERT INTO t_hoge (name) VALUES('hogesan'); と入力するとデータが挿入できます。 なにが問題なんでしょうか。 権限が問題なのでしょうか。 ちなみにテーブル作成するときは CREATE TABLE t_hoge ( name TEXT PRIMARY KEY, info TEXT ); としています。 なにか思い当たる節があれば助言していただきたいのですが。

    • ベストアンサー
    • PHP