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.'
System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'
我在这段代码中有这个错误,我该如何解决?
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
目前,您的代码没有向命令添加任何参数值,因此出现 "No Values Given" 错误。该命令无法识别这些名称并为其分配值,只是因为您已将它们声明为上面的变量。你应该清楚这些是你的 sql 查询中的参数,然后在执行查询之前设置每个参数的值:
Note that all instances of OleDbType.VarChar
need to be replaced with the correct datatypes of your columns. I obviously have no way of knowing what types those columns are so I have just made them all VarChar, but you should adjust those to match your table schema.
Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MONSTER\Desktop\AGKS\AGKS\Database5.accdb"
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)"
Using conn As OleDbConnection = New OleDbConnection(dbsource)
Dim cmd As New OleDbCommand(query, conn)
With cmd
.Parameters.Add("@isimT", OleDbType.VarChar).Value = TextBox1.Text
.Parameters.Add("@soyisimT", OleDbType.VarChar).Value = TextBox2.Text
.Parameters.Add("@yasT", OleDbType.VarChar).Value = TextBox6.Text
.Parameters.Add("@cinsiyetT", OleDbType.VarChar).Value = ComboBox1.Text
.Parameters.Add("@meslekT", OleDbType.VarChar).Value = TextBox10.Text
.Parameters.Add("@egDurT", OleDbType.VarChar).Value = ComboBox2.Text
.Parameters.Add("@tcNoT", OleDbType.VarChar).Value = TextBox3.Text
.Parameters.Add("@perNoT", OleDbType.VarChar).Value = TextBox4.Text
.Parameters.Add("@telNoT", OleDbType.VarChar).Value = TextBox5.Text
.Parameters.Add("@emailT", OleDbType.VarChar).Value = TextBox9.Text
End With
conn.Open()
Dim sonuc As Boolean
sonuc = cmd.ExecuteNonQuery()
If (sonuc = 1) Then
MsgBox("Girdiğiniz veriler kayıt olmuştur")
End If
conn.Close()
End Using
好的,试试这样:
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
这应该可以完成工作。这应该可以解决您的异常。
System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'
我在这段代码中有这个错误,我该如何解决?
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
目前,您的代码没有向命令添加任何参数值,因此出现 "No Values Given" 错误。该命令无法识别这些名称并为其分配值,只是因为您已将它们声明为上面的变量。你应该清楚这些是你的 sql 查询中的参数,然后在执行查询之前设置每个参数的值:
Note that all instances of
OleDbType.VarChar
need to be replaced with the correct datatypes of your columns. I obviously have no way of knowing what types those columns are so I have just made them all VarChar, but you should adjust those to match your table schema.
Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MONSTER\Desktop\AGKS\AGKS\Database5.accdb"
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)"
Using conn As OleDbConnection = New OleDbConnection(dbsource)
Dim cmd As New OleDbCommand(query, conn)
With cmd
.Parameters.Add("@isimT", OleDbType.VarChar).Value = TextBox1.Text
.Parameters.Add("@soyisimT", OleDbType.VarChar).Value = TextBox2.Text
.Parameters.Add("@yasT", OleDbType.VarChar).Value = TextBox6.Text
.Parameters.Add("@cinsiyetT", OleDbType.VarChar).Value = ComboBox1.Text
.Parameters.Add("@meslekT", OleDbType.VarChar).Value = TextBox10.Text
.Parameters.Add("@egDurT", OleDbType.VarChar).Value = ComboBox2.Text
.Parameters.Add("@tcNoT", OleDbType.VarChar).Value = TextBox3.Text
.Parameters.Add("@perNoT", OleDbType.VarChar).Value = TextBox4.Text
.Parameters.Add("@telNoT", OleDbType.VarChar).Value = TextBox5.Text
.Parameters.Add("@emailT", OleDbType.VarChar).Value = TextBox9.Text
End With
conn.Open()
Dim sonuc As Boolean
sonuc = cmd.ExecuteNonQuery()
If (sonuc = 1) Then
MsgBox("Girdiğiniz veriler kayıt olmuştur")
End If
conn.Close()
End Using
好的,试试这样:
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
这应该可以完成工作。这应该可以解决您的异常。