我无法使用vb.net将数据输入sql表?
我的表格结构是:我无法使用vb.net将数据输入sql表?,sql,sql-server,vb.net,ado.net,Sql,Sql Server,Vb.net,Ado.net,我的表格结构是: pid nvarchar(15) //foreign key mgfdate datetime duration numeric(18,0) warrantytype varchar(20) purchasedate datetime expirydate datetime 我的Sql查询是: Dim s1 as String = "insert into productwarrant
pid nvarchar(15) //foreign key
mgfdate datetime
duration numeric(18,0)
warrantytype varchar(20)
purchasedate datetime
expirydate datetime
我的Sql查询是:
Dim s1 as String = "insert into productwarranty values(@pid,@mgfdate,@warrantytype,@duration,@purchasedate,@expirydate)"
Public Function prodwarrantyinsert(ByVal query As String, ByVal product As productform)
Dim i As Integer = 0
Dim d As Integer = CInt(product.ptb10.Text)
Try
connect()
cmd = New SqlCommand(query, conn)
Dim ed As String = CStr(product.ptb11.Text)
Dim md As String = product.pdt7.Value.ToString
Dim pd As String = product.pdt9.Value.ToString
cmd.Parameters.AddWithValue("@pid", PID)
cmd.Parameters.AddWithValue("@mgfdate", md)
cmd.Parameters.AddWithValue("@duration", d)
cmd.Parameters.AddWithValue("@warrantytype", product.ptb8.Text)
cmd.Parameters.AddWithValue("@purchasedate", pd)
cmd.Parameters.AddWithValue("@expirydate", ed)
i = cmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
disconnect()
End Try
Return i
End Function
我经常收到一个错误,如“将数据类型nvarchar转换为数字时出错”
任何帮助都将不胜感激。您尝试插入文本
Dim ed As String = CStr(product.ptb11.Text)
进入datetime
类型的字段
cmd.Parameters.AddWithValue("@expirydate", ed)
可能无法转换。如果在插入中未指定列顺序,则必须在
值部分使用自然顺序。您似乎已交换了@warrantytype
和@duration
。我会安全地指定以下列:
Dim s1 as String = "insert into productwarranty " & _
"(pid, mgfdate, warrantytype, duration, purchasedate, expirydate) " & _
"values(@pid, @mgfdate, @warrantytype, @duration, @purchasedate, @expirydate)"
愚蠢的问题:您是否试图将文本粘贴到数字字段中?尝试列出列名:insert into ProductGuarranty(pid、mgfdate、GuarryType、duration、purchasedate、expirydate)。看起来mgfdate和担保类型有问题。@LittleObjByTables Buddy我懂简单的英语,所以我知道表数据类型和传递的值之间有一些数据类型冲突,但无法识别它。@NicholasV。Pal它在i=cmd.ExecuteNonQuery()时失败@Lauren谢谢