Michael Sernal Ответов: 6

Вставка данных из VB.net к MS Access


Привет Ребята,

Я пытаюсь вставить данные из vb.net к ms access, но я получаю синтаксическую ошибку вставки, кто-нибудь хочет взглянуть на мой код и поделиться своими идеями, почему это так? Кроме того, если вы можете дать мне альтернативный способ кодирования этого, я буду очень признателен. Заранее спасибо.

Private Sub bAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAdd.Click

        Try
            Dim sqlconn As New OleDb.OleDbConnection
            Dim sqlquery As New OleDb.OleDbCommand
            Dim connString As String
            connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2010\Projects\Invent\Invent\mdbInvent.accdb"
            sqlconn.ConnectionString = connString
            sqlquery.Connection = sqlconn
            sqlconn.Open()
            sqlquery.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES(@Username, @Password)"
            sqlquery.Parameters.AddWithValue("@Username", txtUname.Text)
            sqlquery.Parameters.AddWithValue("@Password", txtPass.Text)
            sqlquery.ExecuteNonQuery()
            sqlconn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        
    End Sub

Michael Sernal

Обновление, Ребята, я перекодировал его, и теперь у меня другая ошибка. Это звучит так: "нет. значений запроса и полей назначения не совпадают." Моя таблица в моей базе данных ms access состоит из 3 столбцов, а именно: ID, имя пользователя и пароль.
Примечание: ID автоматически нумеруется БД. Вот почему мне нужно сохранить в моей БД только txtUname.text и txtPass.text.
Итак, есть ли у кого-нибудь идея, как можно сохранить данные только с помощью 2, так как идентификатор автоматически нумеруется MS access? Спасибо.

Private Sub bAdd_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает bAdd.Щелчок
Dim objConn как новый OleDb. OleDbConnection
Дим connStr = "поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=С:\Пользователи\документы Аватар\\визуальная студия 2010\проекты\выдумывать\придумывать\mdbInvent.# то#; идентификатор пользователя=администратор"
Дим модулей, как новых данных oledb.Объект oledbcommand
Попробуй
objConn.ConnectionString = connStr
objConn.Открыть()
ins.Соединение = objConn
ins.CommandText = " вставить в tblUsers значения (@Username, @Password)"
ИНС.Параметры.AddWithValue ("@Username", txtUname.Текст)
ИНС.Параметры.AddWithValue ("@Password", txtPass. Text)
ins.Метод executenonquery()

Поймать ex как исключение
Ящик для сообщений.Показать (например, сообщение)
Конец Попытки

Конец Подводной Лодки

6 Ответов

Рейтинг:
1

TrushnaK

измените эту строку:-

sqlquery.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES(@Username, @Password)"

к

sqlquery.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES('@Username', '@Password')"


CHill60

Абсолютно неправильный поступок.

Рейтинг:
0

nilesh sawardekar

попробовать это...не нужно менять пароль имени столбца..

Private Sub bAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAdd.Click
 
        Try
            Dim sqlconn As New OleDb.OleDbConnection
            Dim sqlquery As New OleDb.OleDbCommand
            Dim connString As String
            connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2010\Projects\Invent\Invent\mdbInvent.accdb"
            sqlconn.ConnectionString = connString
            sqlquery.Connection = sqlconn
            sqlconn.Open()
            sqlquery.CommandText = "INSERT INTO tblUsers([Username], [Password])VALUES(@Username, @Password)"
            sqlquery.Parameters.AddWithValue("@Username", txtUname.Text)
            sqlquery.Parameters.AddWithValue("@Password", txtPass.Text)
            sqlquery.ExecuteNonQuery()
            sqlconn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        
    End Sub


используйте квадратные скобки [] вокруг имени столбца.


Рейтинг:
0

basurajkumbhar

Private Sub bAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAdd.Click
 
        Try
            Dim sqlconn As New OleDb.OleDbConnection
            Dim sqlquery As New OleDb.OleDbCommand
            Dim connString As String
            connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2010\Projects\Invent\Invent\mdbInvent.accdb"
            sqlconn.ConnectionString = connString
            sqlquery.Connection = sqlconn
            sqlconn.Open()
            sqlquery.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES(@Username, @Password)"
            sqlquery.Parameters.AddWithValue("@Username", txtUname.Text)
            sqlquery.Parameters.AddWithValue("@Password", txtPass.Text)
            sqlquery.ExecuteNonQuery()
            sqlconn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        
    End Sub



В этом коде Пароль это ключевое слово в базе данных доступа, поэтому измените пароль на любой другой, например проходить и сделайте свой процесс.


Здесь вы хотите изменить пароль вашего имени столбца на любой другой.

Private Sub bAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAdd.Click
 
        Try
            Dim sqlconn As New OleDb.OleDbConnection
            Dim sqlquery As New OleDb.OleDbCommand
            Dim connString As String
            connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2010\Projects\Invent\Invent\mdbInvent.accdb"
            sqlconn.ConnectionString = connString
            sqlquery.Connection = sqlconn
            sqlconn.Open()
            sqlquery.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES(@Username, @Pass)"
            sqlquery.Parameters.AddWithValue("@Username", txtUname.Text)
            sqlquery.Parameters.AddWithValue("@Pass", txtPass.Text)
            sqlquery.ExecuteNonQuery()
            sqlconn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        
    End Sub


Попробовать это ....


Member 11618979

Спасибо. Для меня это прекрасно работает. Я только что скачал access database engine. И он прекрасно работает.

Рейтинг:
0

Karen Mitchelle

вы можете попробовать читатьэта статья[^Может быть, это поможет.. :)


Рейтинг:
0

Michael Sernal

Private Sub bSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSave.Click
        Dim conn As New OleDb.OleDbConnection
        Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\dbInvent.accdb;Persist Security Info=False"
        Dim cmd As New OleDb.OleDbCommand

        Try
            conn.ConnectionString = connStr
            conn.Open()
            cmd.Connection = conn

            cmd.CommandText = "INSERT INTO tblUsers(Username, Password)VALUES(@User, @Pass)"
            cmd.Parameters.AddWithValue("@User", txtUname.Text)
            cmd.Parameters.AddWithValue("@Pass", txtUpass.Text)

            cmd.ExecuteNonQuery()
            conn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub


Рейтинг:
0

saxenarangu

переименовать название столбца "пароль" какую-нибудь другую например: "password12" или "инвалидов"


CHill60

Почему? "пароль" не является зарезервированным словом в Access