- 締切済み
<VB.NET>INSERT文でDBにデータを入れたい
プログラム初心者です。 ボタンを押したらtextboxの値がDBのテーブルに格納されて画面が閉じるという処理をしたいです。 そして他の画面でボタンを押すとINSERT済みのテーブルが出るという 処理をしようと思っています。 今のところは、他の画面でボタンを押してもINSERT済みのテーブルが でないという状態です。元のテーブルのデータはでます。 サンプルを見つけてやってみたのですが、思った結果がでません。 public sub botton1-click dim sql_insert as string dim cmd_insert as oledbcommand dim strconn as string = "provider = ~OLEDB4.0 = ~.mdb" DA = New oledbDataAdapter conn = New oledbconnection(strconn) sql_insert = "INSERT INTO A組(名前) VALUES(TextBox1.Text) cmd_insert = New oledbcommand(sql_insert,conn) DA.insertCommand = cmd_insert Me.colse end sub DataAdapterはdatasetを使わず直接DBに格納させるINSERTの時にでも 使うのでしょうか? 自分自身まだよく分かっていないので、正しいコードと処理の流れを 教えて欲しいです。 使っているのはaccess2000、VB.NET2003です。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sontei
- ベストアンサー率0% (0/0)
上記のソースでConnectionのオープンを書き忘れたようです。 ある変数(DataAdapter)の宣言もされていません。 以下のソースを使ってご覧下さい。宜しくお願いします。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sql_insert As String Dim cmd_insert As OleDb.OleDbCommand Dim strconn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb" Dim conn As OleDb.OleDbConnection conn = New OleDb.OleDbConnection(strconn) conn.Open() sql_insert = "INSERT INTO A組(名前) VALUES('" & TextBox1.Text & "')" cmd_insert = New OleDb.OleDbCommand(sql_insert, conn) cmd_insert.ExecuteNonQuery() Me.Close() conn.Close() End Sub
- redfox63
- ベストアンサー率71% (1325/1856)
DataAdapterというより OleDbCommandの ExecuteNonQueryでOleDBCommandに設定されたSQLを実行する方法でよさそうですよ DataAdapterは Updateメソッドなどを実行した際にInsertCommandやUpdateCommandに設定されたSQLが実行されると思います コマンドで設定しただけでは データベースへは何も反映されないと思います
DataAdapterを使ったことがないので、想像ですが sql_insert = "INSERT INTO A組(名前) VALUES(TextBox1.Text)" ......VALUES('" & TextBox1.Text & "')" とする必要があると思います。