Member 13704851 Ответов: 1

Как отобразить значение в текстовое поле из radiobutton и сохранить его в ms access


привет ребята моя проблема заключается в том как отобразить значение в текстовом поле выбранном из RadioButon и сохранить его в базе данных ms access

Что я уже пробовал:

Imports System.Data.OleDb

Imports System.Data.SqlClient

Public Class Form4
    Public myconnection As String = "provider= Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Admin\Desktop\project database\Database5.accdb;Persist Security Info= false  "
    Public conn As New OleDbConnection

    Public Sub insertdata()
        Try
            conn.ConnectionString = myconnection
            If conn.State = ConnectionState.Closed Then
                conn.Open()


            End If
            Dim myquary As String = " insert into registration([No],[PName],[RDate],[Gender],[DOB],[Address],[Phone],[Desease],[RoomNo],[Building],[RoomType],[Price]) Values (?,?,?,?,?,?,?,?,?,?,?,?)"
            Dim cmd As New OleDbCommand
            With cmd
                .CommandText = myquary
                .Connection = conn
                .Parameters.AddWithValue("@No", TextBox1.Text)
                .Parameters.AddWithValue("@PName", TextBox2.Text)
                .Parameters.AddWithValue("@RDate", TextBox3.Text)
                .Parameters.AddWithValue("@Gender", TextBox10.Text)
                .Parameters.AddWithValue("@DOB", TextBox4.Text)
                .Parameters.AddWithValue("@Address", TextBox5.Text)
                .Parameters.AddWithValue("@Phone", TextBox6.Text)
                .Parameters.AddWithValue("@Desease", TextBox9.Text)
                .Parameters.AddWithValue("@RoomNo", TextBox11.Text)
                .Parameters.AddWithValue("@Building", TextBox12.Text)
                .Parameters.AddWithValue("@RoomType", TextBox7.Text)
                .Parameters.AddWithValue("@Price", TextBox8.Text)

-------------------------------------------------------------------------
ошибка, которую я получаю, заключается в следующем :несоответствие в выражении данных

Bryian Tan

Все ли поля в базе данных MS Access ожидают текстовый тип данных?

1 Ответов

Рейтинг:
2

Maciej Los

Вы смешали неименованные параметры с именованными параметрами:

Dim myquary As String = " insert into registration([No],[PName],[RDate],[Gender],[DOB],[Address],[Phone],[Desease],[RoomNo],[Building],[RoomType],[Price]) Values (?,?,?,?,?,?,?,?,?,?,?,?)"
        Dim cmd As New OleDbCommand
        With cmd
            .CommandText = myquary
            .Connection = conn
            .Parameters.AddWithValue("@No", TextBox1.Text)


Есть 2 способа решить эту проблему:
1. Используйте именованные параметры
Dim myquary As String = " insert into registration([No],[PName],[RDate],[Gender],[DOB],[Address],[Phone],[Desease],[RoomNo],[Building],[RoomType],[Price]) Values (@No,...)"
        Dim cmd As New OleDbCommand
        With cmd
            .CommandText = myquary
            .Connection = conn
            .Parameters.AddWithValue("@No", TextBox1.Text)


или
2. Вставить неименованных параметров. Важное примечание: вы должны добавлять их в том же порядке, что и поля
Dim myquary As String = " insert into registration([No],[PName],[RDate],[Gender],[DOB],[Address],[Phone],[Desease],[RoomNo],[Building],[RoomType],[Price]) Values (?,?,?,?,?,?,?,?,?,?,?,?)"
        Dim cmd As New OleDbCommand
        With cmd
            .CommandText = myquary
            .Connection = conn
            .Parameters.Add(New OleDbParameter("@p1", TextBox1.Text))


Видеть: Класс OleDbParameter (System.Data.Для oledb)[^]


Richard Deeming

Имена параметров не имеют значения при доступе; вы можете передать любое имя, которое вам нравится. AddWitValue метод, если он уникален и добавлен в том же порядке, что и исходный запрос.

Maciej Los

Я только что понял, что второй метод тоже использует именованные параметры... Я уже упоминал о порядке параметров.

Richard Deeming

Он дает имена параметрам, но не использует "именованные параметры", так как они не поддерживаются. :)

Maciej Los

Ну, MS Access database engine знает именованные параметры. Видеть: Объявление параметров (Microsoft Access SQL).