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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21124556/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 09:10:13  来源:igfitidea点击:

How to save data in directly to the database in vb.net

databasevb.netms-access

提问by user3195853

I am encountering a problem in my Visual Basic.NET code in saving a data directly to an Microsoft Access database. Here is the code I have tried to accomplish my problem:

我的 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

Here is my revised Visual Basic code:

这是我修改后的 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

回答by Tim Schmelter

I assume that the problem is that you're not assigning the Connectionto the Command. You can either use the constructoror the property:

我认为这个问题是你没有分配ConnectionCommand。您可以使用构造函数属性

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