簡體   English   中英

如何使用vb.net將日期插入SQL Server

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM