Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法使用vb.net将数据输入sql表?_Sql_Sql Server_Vb.net_Ado.net - Fatal编程技术网

我无法使用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谢谢