So speichern Sie Daten direkt auf der Datenbank vb.net
Bin ich der Begegnung mit einem problem in meinem Visual Basic.NET code speichern die Daten direkt in eine Microsoft Access-Datenbank. Hier ist der code, den ich versucht habe zu erreichen, mein problem:
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
Hier ist meine überarbeitete Visual Basic-code:
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
- Und was ist der Fehler, den du Begegnung? Sie müssen zumindest einige Informationen. (Tipp: Sie sind explizit ignorieren von Ausnahmen in Ihrer
Catch
block. Ausnahmen enthalten sehr nützliche Informationen, und sollte nicht ignoriert werden. Es gibt eine gute chance, dass das system versucht, Ihnen zu sagen, was genau falsch ist, und du bist einfach nicht Zuhören.) - Nicht zu sehen, etwas, geben Sie mir einen Anhaltspunkt.Die PS die Sie nicht brauchen, um die Verbindung zu schließen und das catch-block ist auch frech...
- Ohne Sie würden Sie einen null-Verweis-Ausnahme-ich denke, angesichts dessen, was Sir Tim sah. Das ist der Grund, warum try Catch end verpönt ist...
- Sir, was mein problem ist, dass die Daten, die ich einfügen möchten, oder fügen Sie in meiner Datenbank nicht hinzufügen. Der code funktionierte nicht.
- warum hat deine db geändert? in der ersten code, den Sie geschrieben, es war
watta1.mdb
und Ihre aktualisierten code istwatta2.accdb
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gehe davon aus, dass das problem ist, dass Sie nicht die Zuordnung der
Connection
zu denCommand
. Sie können entweder die Konstruktor oder die Eigenschaft:cmd.ExecuteNonQuery()
zurück? Weisen Sie es zu einemInt32
variable, um zu sehen, wenn ein Datensatz eingefügt wurde, dann gibt es 1.