1

このコードを取得してプレーヤー名を入力しようとすると、それがデータ行に入力され、DB で更新されます。現在、データ行で更新されていますが、DB を更新するためのコードを正しく取得できません。歓声を上げてください。

  Using da As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Team1", con)
            da.Fill(ds, "BPAWA")

            txtFirstName.Text = ds.Tables("BPAWA").Rows(0).Item(1)

            T1P1 = InputBox("Name of Player 1")

            ds.Tables("BPAWA").Rows(0).Item(1) = T1P1

            ds.Tables("BPAWA").AcceptChanges()
            ds.AcceptChanges()

            da.Update(ds, "BPAWA")
            MsgBox("Player 1 Added Successfully")
        End Using
4

2 に答える 2

1

OleDbDataAdapter は実際のコマンドにリンクされておらず、コードでアダプターを作成したようにも見えません。ここで例を見てください

このような行がありません

Dim da As OleDbDataAdapter = new OleDbDataAdapter(selectCommand, connection);

だから私はあなたのコードをこのように書き直すことができました(グローバル変数の回避)

Private Sub btnLoad_Click(sender As Object, e As EventArgs) Handles btnLoad.Click
    Dim dbProvider As String = "PROVIDER=microsoft.ace.oledb.12.0;"
    Dim dbSource As String = "Data Source = C:\BP_Table_Project.accdb"
    Dim ds as DataSet = new DataSet()

    Using con As OleDbConnection = new OleDbConnection()
        con.ConnectionString = dbProvider & dbSource
        con.Open()

        MsgBox("Connection With Database Established", 0, "Database Connection")

        Using da as OleDbDataAdapter = new OleDbDataAdapter("SELECT * FROM Team1", con)
            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(da)
            da.Fill(ds, "BPAWA")
            ......

            da.Update(ds, "BPAWA")
            MsgBox("Player 1 Added Successfully")
        End Using
        MsgBox("Connection With Database Closed", 0, "Database Connection")
    End Using
End Sub
于 2012-11-13T13:23:15.963 に答える
-1

da.Update(ds, "BPAWA")

追加:

ds.Tables("BPAWA").AcceptChanges()
ds.AcceptChanges()
于 2012-11-13T13:22:49.510 に答える