[英]How to insert a date into SQL Server using vb.net
这是我的代码,它将先将数据插入datagridview,然后再插入数据库。
运行代码时,出现错误
操作数类型冲突位与日期不兼容
谁能帮我?
提前致谢
populate(txtRejectID.Text, comboBoxCardType.Text, txtEmbossName.Text, txt6CardNum.Text, txt4CardNum.Text, txtQuantity.Text, comboBoxErrorDesc.Text, embossDate.Text, txtStatus.Text)
For Each row As DataGridViewRow In DataGridView1.Rows
Dim query As String = "INSERT INTO dbo.RejectCard VALUES (@RejectID, @Card_Type, @Emboss_Name, @Card_Number, @Quantity, @Error_Description, @Emboss_Date, @Status)"
Using conn As New SqlConnection(connString)
Using cmd As New SqlCommand(query, conn)
cmd.Parameters.AddWithValue("@RejectID", row.Cells("rejectid").Value)
cmd.Parameters.AddWithValue("@Card_Type", row.Cells("cardtype").Value)
cmd.Parameters.AddWithValue("@Emboss_Name", row.Cells("embossname").Value)
cmd.Parameters.AddWithValue("@Card_Number", row.Cells("cardnumber").Value)
cmd.Parameters.AddWithValue("@Quantity", row.Cells("quantity").Value)
cmd.Parameters.AddWithValue("@Error_Description", row.Cells("errordescription").Value)
cmd.Parameters.AddWithValue("@Emboss_Date", row.Cells("emboss_Date").Value = embossDate.Value.Date.ToString("dd/MM/yyyy"))
cmd.Parameters.AddWithValue("@Status", row.Cells("status").Value)
Try
conn.Open()
cmd.Connection = conn
cmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("Error while inserting record on table..." & ex.Message, "Insert Records")
Finally
conn.Close()
End Try
End Using
End Using
Next
MessageBox.Show("Records inserted.")
End Sub
您插入日期的方式与插入其他日期的方式完全相同。 问题是您没有插入Date
。 您正在插入Boolean
。 查看您的代码。 这是您插入的值:
row.Cells("emboss_Date").Value = embossDate.Value.Date.ToString("dd/MM/yyyy")
这是一个平等的比较。 相等比较的结果始终为Boolean
,即,如果值相等则为True
否则为False
。 如果要插入Date
提供Date
,而不是网格行中的值与String
之间的比较。
您为什么不仅仅为该参数做所有其余操作? 您显然认为自己在这里取得了成就,但是我可以向您保证,您没有做到。 如果您要执行的操作是从DateTime
值中删除时间,则可以通过获取Date
属性,而不是通过将Date
转换为String
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.