Search code examples
vb.netms-accessoledb

System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'


System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'

I have this error in this code how can I solve it?

Imports System.Data.OleDb

Public Class yenikayit
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim isimT As String = ""
    Dim soyisimT As String = ""
    Dim tcNoT As String = ""
    Dim yasT As String = ""
    Dim cinsiyetT As String = ""
    Dim perNoT As String = ""
    Dim egDurT As String = ""
    Dim meslekT As String = ""
    Dim telNoT As String = ""
    Dim emailT As String = ""

    isimT = TextBox1.Text
    soyisimT = TextBox2.Text
    tcNoT = TextBox3.Text
    yasT = TextBox6.Text
    cinsiyetT = ComboBox1.Text
    perNoT = TextBox4.Text
    egDurT = ComboBox2.Text
    telNoT = TextBox5.Text
    meslekT = TextBox10.Text
    emailT = TextBox9.Text


    Dim query As String = "INSERT INTO Personel (isim,soyisim,Yas,Cinsiyet,Alan,Egitim,TC,personel_id,tel_no,email) VALUES(isimT,soyisimT,yasT,cinsiyetT,meslekT,egDurT,tcNoT,perNoT,telNoT,emailT)"
    Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MONSTER\Desktop\AGKS\AGKS\Database5.accdb"
    Dim conn = New OleDbConnection(dbsource)
    Dim cmd As New OleDbCommand(query, conn)
    conn.Open()
    Dim sonuc As Boolean
    sonuc = cmd.ExecuteNonQuery()
    If (sonuc = 1) Then
        MsgBox("Girdiğiniz veriler kayıt olmuştur")
        conn.Close()
    End If
End Sub
End Class

this is the part of the code that give us error


Solution

  • Ok, try something like this:

    Dim query As String = "INSERT INTO Personel (isim,soyisim,Yas,Cinsiyet,Alan,Egitim,TC,personel_id,tel_no,email) "
    query +="VALUES(@isimT,@soyisimT,@yasT,@cinsiyetT,@meslekT,@egDurT,@tcNoT,@perNoT,@telNoT,@emailT)"
    Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MONSTER\Desktop\AGKS\AGKS\Database5.accdb"
    Dim conn = New OleDbConnection(dbsource)
    Dim cmd As New OleDbCommand(query, conn)
     query.Parameters.AddWithValue("@isimT", TextBox1.Text)
     cmd.Parameters.AddWithValue("@soyisimT", TextBox2.Text)   
     cmd.Parameters.AddWithValue("@tcNoT", TextBox3.Text)
     cmd.Parameters.AddWithValue("@yasT", TextBox6.Text)
     cmd.Parameters.AddWithValue("@cinsiyetT", ComboBox1.Text)
     cmd.Parameters.AddWithValue("@perNoT", TextBox4.Text)
     cmd.Parameters.AddWithValue("@egDurT", ComboBox2.Text)
     cmd.Parameters.AddWithValue("@telNoT", TextBox5.Text)
     cmd.Parameters.AddWithValue("@meslekT", TextBox10.Text)
     cmd.Parameters.AddWithValue("@emailT", TextBox9.Text)
     conn.Open()
     Dim sonuc As Boolean
        sonuc = cmd.ExecuteNonQuery()
        If (sonuc = 1) Then
            MsgBox("Girdiğiniz veriler kayıt olmuştur")
            conn.Close()
        End If
    

    This should do the job. This should fix your exception.