2

私は vb.net の初心者で、まだ学生です。教育上のニーズのためだけに、vb.net で学生の登録の詳細を入力するフォームを作成しました。MS Access 2010 を使用してデータベースを作成し、vb フォームにリンクしました。正常に動作し、vb.net アプリケーションを介してアクセス データベースに詳細を入力できますが、次のタスクを処理できません。

1)主キー(データベースの主キー「学生番号」を使用してデータベースのレコードを削除します。これが私のコードです。このタスクを実行するように修正してください:

Imports System.Data.OleDb
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As OleDbConnection
        Dim com As OleDbCommand
        con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\Users\Pasindu\Documents\database9.accdb")
        com = New OleDbCommand("delete from Table1 where Student number =@sno", con)
        con.Open()
        com.Parameters.AddWithValue("@sno", TextBox1.Text)
        com.ExecuteNonQuery()
        MsgBox("Record Deleted")
        con.Close()
    End Sub
End Class

2) パスワードを使用してデータベースを保護したいのですが、パスワードを使用して MS Access データベースを暗号化しています。したがって、以前のコードを使用してデータベースを更新できないため、データベースを保護するときにコードの変更を知る必要があるだけです。アクセスデータベースにデータを入力するための以前のコードは次のとおりです。パスワードで保護されたデータベースではありませんでした。

Imports System.Data.OleDb
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As OleDbConnection
        Dim com As OleDbCommand
        con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\Users\Pasindu\Documents\database9.accdb;")
        com = New OleDbCommand("insert into table1 values(@sno,@sname,@nic)", con)
        con.Open()
        com.Parameters.AddWithValue("@sno", TextBox1.Text)
        com.Parameters.AddWithValue("@sname", TextBox2.Text)
        com.Parameters.AddWithValue("@nic", TextBox3.Text)
        com.ExecuteNonQuery()
        MsgBox("record added")
        con.Close()
    End Sub
4

2 に答える 2

3

パスワードで保護された MS Access データベースを開くには、接続文字列を変更する必要があります

"Provider=Microsoft.ACE.OLEDB.12.0;" + 
"Data Source=C:\Users\Pasindu\Documents\database9.accdb;" + 
"Jet OLEDB:Database Password=MyDbPassword;"

MyDbPassword は正しい文字列に置き換える必要があります

質問の削除部分については、コマンドを変更してみます

delete * from Table1 where [Student number]=@sno

フィールド名にスペースが含まれている場合は、名前を角かっこでカプセル化します

于 2012-07-17T09:09:43.143 に答える