• ベストアンサー

.netでのDB連携

ASP.netのVB.NETを勉強していて簡単なシステムを作成しています。 簡単な帳票にデータを登録したり編集、削除したりするものです。 DB接続はできたのですが、DBからデータを呼び出す表示、イベントによるDBにデータを登録、そしてDBのデータを編集、削除する方法がみえてきません。 SQLのクエリを使用して行うのでしょうか? SELECT 呼び出す列 FROMテーブル  これだけではよびだせませんでした。 すいませんが、知恵をかしてください。 DB接続を行った後、

  • force1
  • お礼率55% (713/1288)

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

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

>又SPREADとの連携を行い、SPREADとしてDBからとってきた値を入れたり、登録したりしたいのですが、参考になるアドバイス、またはサイトないでしょうか。 大変残念ですが、私はSPREADを使用した開発経験がありません。 SPREADがどのようなインターフェースを持つのかわからないため、回答できません。 参考になるかどうか別としてですが、 Console.WriteLine(i.Tostring() & "," & columns & "=" & data ) 部分を 出力したいコントロールに設定すれば値は表示できると、思います。 Textbox1.Text = data のようになるでしょうか。 もうご存知かもしれませんが、ASP.NETにおいて、コントロールを動的に取得する場合は、FindControlメソッドを使用します。 Meの直下のコントロールであれば、 Me.FindControl("探したいコントロールのID") となります。 これを利用し、 コントロールの名称をカラム名+ロー番号にしておけば、 dim control as object For i As Integer = 0 To Reader.FieldCount - 1 columns = DirectCast(Reader.GetSchemaTable.Rows(i).Item("ColumnName"), String) data = DirectCast(Reader.Item(i),String) control = Me.Findcontrol(columns & i.Tostring()) if not control is nothing then control.text = data end if Next のようにして、まわすこともできます。 参考になるサイトとしてあげられるのは、System.Data.SqlClient名前空間の使用の参考になるサイトだけです。 http://park5.wakwak.com/~weblab/index.html

force1
質問者

お礼

返事が送れてすいません。 色々試していました、ありがとうございます!

その他の回答 (1)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

DBとのやり取りはSQLという言語を通して行います。 データを取得する場合も、データを更新する場合もSQLを発行して、データベースがSQLを解釈し、結果を返してくれます。 そのため、 まずVB.NETからSQLを発行するための手順を知らなければいけません。 たとえば Accessであれば、System.Data.OleDb.OleDbCommandを使用します。 SQL Serverであれば、System.Data.SqlClient.SqlCommandを使用します。 例としては、 '先頭にImports System.Data.SqlClientを入れること。 Dim cnstr As String = "自分が使用する接続文字列" Using cn As SqlConnection = New SqlConnection(cnstr) Dim reader As SqlDataReader cn.Open() Try Using cmd As SqlCommand = New SqlCommand cmd.CommandText = "SELECT * FROM テーブル名" cmd.Connection = cn reader = cmd.ExecuteReader End Using Catch ex As Exception End Try Dim columns As String Dim data As String DO While Reader.Read() For i As Integer = 0 To Reader.FieldCount - 1 columns = DirectCast(Reader.GetSchemaTable.Rows(i).Item("ColumnName"), String) data = DirectCast(Reader.Item(i),String) Console.WriteLine(i.Tostring() & "," & columns & "=" & data ) Next Loop cn.Close() End Using

force1
質問者

お礼

非常に参考になりました。ありがとうございます! 登録や削除はinsertやdeleteを使用して行う以外もあるのですね。 又SPREADとの連携を行い、SPREADとしてDBからとってきた値を入れたり、登録したりしたいのですが、参考になるアドバイス、またはサイトないでしょうか。

関連するQ&A

  • PHPからMySQL・異なるDBにコピー

    PHPからMySQL・異なるDBに接続し同じ構造のテーブルのデータをコピーすることは可能ですか? 以下を実行するとクエリが実行されず「コピーできません」が表示されてしまいます。 どのようにすればコピーできるか教えてください。 $connect1 = mysql_connect("localhost", "user1", "pass1") ; mysql_select_db("db1", $connect1); //db1内にtable1 $connect2 = mysql_connect("localhost", "user2", "pass2") ; mysql_select_db("db2", $connect2); //db2.内にtable2 $sql = "INSERT INTO `db1` . `table1` SELECT * FROM `db2` .`table2`;"; $result = mysql_query($sql, $connect1)or die("コピーできません"); //$result内「$connect1」でも「$connect2」結果は同じです。 //table1とtable2の構造は同じです。

    • ベストアンサー
    • PHP
  • クエリは更新とかできますか?

    初歩的な質問かと思いますが、accessクエリのデータはaspから更新・追加・削除とかできるものですか。 (例) sql = "select * from 職員名簿クエリ" のようにクエリからopenしている場合。 #access2000使用 #できないものと決めつけていましたが、確認したくて質問しました。

  • プルダウンメニューの値をDBに格納する

    以前、こちらでDBの内容をプルダウンメニューで表示させる処理を教えて頂き 下記のコードで実装する事が出来たのですが <SELECT NAME="DAY"> <?php $sql = "SELECT day FROM date_tbl ORDER BY day;"; $col = pg_query($con, $sql); while($data = pg_fetch_array($col)){ ?> <OPTION VALUE="<?php $data['day'] ?>"><?php echo $data['day'] ?></OPTION> <?php } ?> </SELECT> これを応用し、プルダウンメニューでDBの値を選択し 削除ボタンを押せば、選択した項目をDBから削除しようとしています。 しかし実行しても何も起きず自力での解決が出来なくなってしまったので 再度のご教授願えますでしょうか? 以下は自分が考えた処理です。 $del_day = mb_convert_kana($_POST['DAY_DELETE'], "n", "EUC-JP"); if($del_day){ pg_query($con, "DELETE FROM date_tbl WHERE day = '$del_day'"); } ちなみにDBの構造は下記の通りです。 ---------------------- 名前 | 日付 | 登録日 | ---------------------- SELECT name,TO_CHAR(day, 'yyyy年mm月dd日') AS day,TO_CHAR(record_date, 'yyyy年mm月dd日') AS record_date FROM date_tbl ORDER BY day, record_date;"); ※DBには名前・日付・登録日があり、日付はTO_CHARで 『2007-04-01』⇒『2007年04月01日』という形に整形しています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • VBとDB連携について

    VB.NETとDB(オラクル)を使って開発をしています。 画像の左側のテキストボックスは上から  textbox1(Nameプロパティ:txt_Name)  textbox2(Nameプロパティ:txt_Tihou)  textbox3(Nameプロパティ:txt_Category) としています SQL文で textbox1~textbox3の内容が入っている項目だけWHERE句で抽出させたいです たとえば画像の例で、 textbox1に「みかん」、textbox3に「果物」と入れているとき、 赤の四角で囲った2行をdatagridviewとかに表示しようとおもっています 実際のコード(変数等は中略しています) 'textbox1、textbox2、textbox3が空白でない if textbox1.text <> "" And textbox2.text <> "" And textbox3.text <> "" SQL = "select * from ["表名"] where 名前 = " & textbox1.text & _ " and 地方 = " &textbox2.text & " and カテゴリ = " & textbox3.text" end if 'textbox1が空白でない if textbox1.text <> "" And textbox2.text = "" And textbox3.text = "" SQL = "select * from ["表名"] where 名前 = " & textbox1.text & " end if ・ ・ ・ ・ ・・・という感じで全ての組み合わせ(10通りくらい)でIF文を書いています この例では3つなのでまだいいかもしれませんが、 テキストボックスが10個とか100個とかになったらどのように判断したらいいのか分からないです 何か効率いい方法、知っている方いましたら教えてください

  • phpとmysqlが連携できない

    問題のコードです。 何度やっても失敗と表示されます。 接続は問題ないと思います。 お願いします。 $db = mysql_connect("localhost", "user", "user_パスワード", "db1") or die("Connection error"); $query = "select * from menbers"; $result = mysql_query($query, $db); if($result){ echo "成功"; }else{ echo "失敗"; }

  • DB2の接続エラー

    はじめまして。 現在、Tivoli(MAXIMO)で使用しているDB2を自分のクライアント端末からDB2に接続し、VBで帳票を作ろうとしています。 しかし、DB2へ接続しようとすると、エラーとなります。 エラー内容は。 実行時エラー'2147217887(80040e21) CLI0124E 引き数の値が無効です。SQLSTATE=HY009となります。 DB2のランタイムクライアントをインストールしているので、ODBCには問題がないと思います。 接続のところで、エラーとなるようです。 コーディングは以下のようにしております。 strSQL = "select * From TICKET" ' 接続 cn.Open "Provider=IBMDADB2;DSN=MAXIMO.TICKET;UserID=user名;Password=password;" Set rs = cn.Execute(strSQL) DB2のバージョンは9 以上、よろしくお願いいたします。

  • DBを使わないDataGrid

    初歩的な質問ですが、お願いします。 C#.NETで、DBに接続しない使い方で、行数可変なDataGrid的なものを使いたいのですが、ネットや本を見ていると、DataGridはDB接続やASPでの使うことが多いようです。 VB6には以下のようなフレキシブルグリッドというのがあるそうですが、.NETではどうでしょうか。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1043545

  • VBでODBC接続して更新・削除できない

    VBとSQLSerever2003を接続してプログラムしています。 ネットで検索しつつ以下のコードで接続できました。 Set SQL_DB = SQL_WSpace.OpenDatabase("", False, False, "ODBC;Driver={SQL Server};" "SERVER=" & (DATABASE_SERVER) & ";" "DATABASE=" & (DATABASE_NAME) & ";" "UID=" & (DB_ID) & ";" "PWD=" & (DB_PASS) & ";" SELECT文は問題ないのですが、DELETE文とUPDATE文だと、「指定されたテーブルから削除できませんでした」、「更新可能なクエリであることが必要です」とでます。アドバイスをお願いします。

  • ASPから異なる複数のDBサーバーに接続する方法

    ASPの質問です。WEBサーバーと複数のDBサーバーがあります。 ADODB.Connectionでオラクルサーバーに接続し、データベースオブジェクトを作成しています。 別々のDBサーバーにあるテーブルを結合して利用したいのですが、ASPで可能でしょうか? 例えば"select * from A,B where A.ID=B.ID"というSQL文を実行する(AとBは別々のDBサーバーにある)。 とりあえず、代替案で検討しているのは片方のDBサーバーにデータベースリンクで他方のDBサーバーのVIEWを作ろうかと思っています。できればASPで解決したいのですが、よろしく御願いします。

  • Visual Studio2005とDB(Postgles)のことにつ

    Visual Studio2005とDB(Postgles)のことについての質問です。 PostglesのデータをVisualStudioから読み込むにはどうすればいいですか? VisualStudioのデータソースにPostglesのDB名が出て来ず、 (アクセスやSQLサーバしか出てこない)VBとDBを接続させることができず苦戦しています。 誰か教えてください

専門家に質問してみよう