如何在vb.net中直接将数据保存到数据库中

时间:2014-01-14 21:38:53

标签: database vb.net ms-access

我在Visual Basic.NET代码中遇到了将数据直接保存到Microsoft Access数据库的问题。以下是我试图解决问题的代码:

Imports System.Data.OleDb

Public Class Form1
Dim cnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ching13\Desktop\watta1.mdb"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Using dbConnection = New OleDbConnection(cnn)
        Dim dt As New DataTable
        Dim da As New OleDbDataAdapter
        Try
            dbConnection.Open()
            Dim cmd As New OleDbCommand
            cmd.CommandText = "INSERT INTO Log-In( Username, [Password] ) VALUES (@user, @pass)"

            cmd.Parameters.Add(New OleDbParameter("@user", DbType.String))
            cmd.Parameters.Add(New OleDbParameter("@pass", DbType.String))

            cmd.Prepare()

            cmd.Parameters("@user").Value = TextBox1.Text
            cmd.Parameters("@pass").Value = TextBox2.Text

            cmd.ExecuteNonQuery()

        Catch ex As Exception
        Finally
            dbConnection.Close()


        End Try
        MessageBox.Show("Data Saved")
        TextBox1.Text = ""
        TextBox2.Text = ""

    End Using
End Sub
End Class

这是我修订的Visual Basic代码:

Imports System.Data.OleDb
Public Class Form1
    Dim cnn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ching13\Desktop\watta2.accdb"


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Using dbConnection = New OleDbConnection(cnn)
        Dim dt As New DataTable
        Dim da As New OleDbDataAdapter
        dbConnection.Open()
        Dim cmd As New OleDbCommand
        cmd.Connection = dbConnection
        cmd.CommandText = "INSERT INTO Log-In( Username, [Password] ) VALUES (@user, @pass)"

        cmd.Parameters.Add(New OleDbParameter("@user", DbType.String))
        cmd.Parameters.Add(New OleDbParameter("@pass", DbType.String))

        cmd.Prepare()


        cmd.Parameters("@user").Value = TextBox1.Text
        cmd.Parameters("@pass").Value = TextBox2.Text

        cmd.ExecuteNonQuery()
        dbConnection.Close()


        MessageBox.Show("Data Saved")
        TextBox1.Text = ""
        TextBox2.Text = ""

    End Using
End Sub
End Class

1 个答案:

答案 0 :(得分:2)

我认为问题在于您没有将Connection分配给Command。您可以使用constructorproperty

Dim cmd As New OleDbCommand
cmd.Connection = dbConnection
cmd.CommandText = "INSERT INTO Log-In( Username, [Password] ) VALUES (@user, @pass)"