'No value given for one or more required parameters.' 数据类型规范是否有误?
'No value given for one or more required parameters.' Is there an error in specification of data types?
我正在尝试从 vb.net 文本框中添加数据以访问我无法修复错误。是因为单选按钮、组合框、日期时间选择器的数据类型吗?
Dim count = Convert.ToInt32(cmd.ExecuteScalar())
If count > 0 Then
MessageBox.Show("Details already exist")
con.Close()
Else
Dim create As New OleDbCommand("INSERT INTO Household ([lastname] , [firstname] , [middlename] , [extname] , [sex] , [birthdate] , [citizenship] , [birthplace] , [civilstatus] , [occupation] ,
[housenumber] , [street] , [purok] ) VALUES (@lastname, @firstname , @middlename , @extname , @sex , @birthdate , @citizenship, @birthplace , @civilstatus , @occupation , @housenumber , @street , @purok)", con)
create.Parameters.AddWithValue("@lastname", OleDb.OleDbType.VarChar).Value = TextBox5.Text.Trim
create.Parameters.AddWithValue("@firstname", OleDb.OleDbType.VarChar).Value = TextBox6.Text.Trim
create.Parameters.AddWithValue("@middlename", OleDb.OleDbType.VarChar).Value = TextBox7.Text.Trim
create.Parameters.AddWithValue("@extname", OleDb.OleDbType.VarChar).Value = TextBox8.Text.Trim
create.Parameters.AddWithValue("@sex", OleDb.OleDbType.Char).Value = RadioButton1.Checked Or RadioButton2.Checked
create.Parameters.AddWithValue("@birthdate", OleDb.OleDbType.Date).Value = DateTimePicker1.Value
create.Parameters.AddWithValue("@citizenship", OleDb.OleDbType.VarChar).Value = TextBox10.Text.Trim
create.Parameters.AddWithValue("@birthplace", OleDb.OleDbType.VarChar).Value = TextBox9.Text.Trim
create.Parameters.AddWithValue("@civilstatus", OleDb.OleDbType.Char).Value = ComboBox1.SelectedValue
create.Parameters.AddWithValue("@occupation", OleDb.OleDbType.VarChar).Value = TextBox11.Text.Trim
create.Parameters.AddWithValue("@housenumber", OleDb.OleDbType.Numeric).Value = TextBox12.Text.Trim
create.Parameters.AddWithValue("@street", OleDb.OleDbType.VarChar).Value = TextBox13.Text.Trim
create.Parameters.AddWithValue("@purok", OleDb.OleDbType.Char).Value = ComboBox2.SelectedValue
[Heres the error][1]
[1]: https://i.stack.imgur.com/bCXb7.png
我只看到 OledbParameterCollection.AddWithValue
的一个签名,它是 Public Function AddWithValue (parameterName As String, value As Object) As OleDbParameter
https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbparametercollection.addwithvalue?view=dotnet-plat-ext-5.0
全部create.Parameters.AddWithValue
应该是create.Parameters.Add
要解决性别问题,您需要提供 Char
。字符串后面的小写 c
告诉编译器这是一个 Char
,而不是 String
.
Dim sex As Char
If RadioButton1.Checked Then
sex = "M"c 'Male
Else
sex = "F"c 'Female
End If
create.Parameters.Add("@sex", OleDb.OleDbType.Char).Value = sex
我正在尝试从 vb.net 文本框中添加数据以访问我无法修复错误。是因为单选按钮、组合框、日期时间选择器的数据类型吗?
Dim count = Convert.ToInt32(cmd.ExecuteScalar())
If count > 0 Then
MessageBox.Show("Details already exist")
con.Close()
Else
Dim create As New OleDbCommand("INSERT INTO Household ([lastname] , [firstname] , [middlename] , [extname] , [sex] , [birthdate] , [citizenship] , [birthplace] , [civilstatus] , [occupation] ,
[housenumber] , [street] , [purok] ) VALUES (@lastname, @firstname , @middlename , @extname , @sex , @birthdate , @citizenship, @birthplace , @civilstatus , @occupation , @housenumber , @street , @purok)", con)
create.Parameters.AddWithValue("@lastname", OleDb.OleDbType.VarChar).Value = TextBox5.Text.Trim
create.Parameters.AddWithValue("@firstname", OleDb.OleDbType.VarChar).Value = TextBox6.Text.Trim
create.Parameters.AddWithValue("@middlename", OleDb.OleDbType.VarChar).Value = TextBox7.Text.Trim
create.Parameters.AddWithValue("@extname", OleDb.OleDbType.VarChar).Value = TextBox8.Text.Trim
create.Parameters.AddWithValue("@sex", OleDb.OleDbType.Char).Value = RadioButton1.Checked Or RadioButton2.Checked
create.Parameters.AddWithValue("@birthdate", OleDb.OleDbType.Date).Value = DateTimePicker1.Value
create.Parameters.AddWithValue("@citizenship", OleDb.OleDbType.VarChar).Value = TextBox10.Text.Trim
create.Parameters.AddWithValue("@birthplace", OleDb.OleDbType.VarChar).Value = TextBox9.Text.Trim
create.Parameters.AddWithValue("@civilstatus", OleDb.OleDbType.Char).Value = ComboBox1.SelectedValue
create.Parameters.AddWithValue("@occupation", OleDb.OleDbType.VarChar).Value = TextBox11.Text.Trim
create.Parameters.AddWithValue("@housenumber", OleDb.OleDbType.Numeric).Value = TextBox12.Text.Trim
create.Parameters.AddWithValue("@street", OleDb.OleDbType.VarChar).Value = TextBox13.Text.Trim
create.Parameters.AddWithValue("@purok", OleDb.OleDbType.Char).Value = ComboBox2.SelectedValue
[Heres the error][1]
[1]: https://i.stack.imgur.com/bCXb7.png
我只看到 OledbParameterCollection.AddWithValue
的一个签名,它是 Public Function AddWithValue (parameterName As String, value As Object) As OleDbParameter
https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbparametercollection.addwithvalue?view=dotnet-plat-ext-5.0
全部create.Parameters.AddWithValue
应该是create.Parameters.Add
要解决性别问题,您需要提供 Char
。字符串后面的小写 c
告诉编译器这是一个 Char
,而不是 String
.
Dim sex As Char
If RadioButton1.Checked Then
sex = "M"c 'Male
Else
sex = "F"c 'Female
End If
create.Parameters.Add("@sex", OleDb.OleDbType.Char).Value = sex