プロが教える店舗&オフィスのセキュリティ対策術

プログラム初心者です。

ボタンを押したら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です。よろしくお願いします。

A 回答 (3件)

上記のソースで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
    • good
    • 3

DataAdapterというより OleDbCommandの ExecuteNonQueryでOleDBCommandに設定されたSQLを実行する方法でよさそうですよ



DataAdapterは Updateメソッドなどを実行した際にInsertCommandやUpdateCommandに設定されたSQLが実行されると思います

コマンドで設定しただけでは データベースへは何も反映されないと思います
    • good
    • 3

DataAdapterを使ったことがないので、想像ですが


sql_insert = "INSERT INTO A組(名前) VALUES(TextBox1.Text)"
......VALUES('" & TextBox1.Text & "')"
とする必要があると思います。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A