1

我正在尝试使用下面的代码插入数据库,但是,每次出现错误时:

日期格式存在语法错误。[ 表达式 = @DOB ]

我已经尝试了几乎所有可用的日期格式,tolongdate、toshortdate 等,无论我使用什么显示此错误。

数据库列格式为datetime. 有什么想法我哪里出错了吗?

代码:

' Insert New User - Create Connection
Dim sqlConn As New SqlCeConnection(My.Settings.CompDbConnectionString)

' Open Connection
sqlConn.Open()

' Query DB
Dim sqlComm As New SqlCeCommand("INSERT INTO Profiles(Title, FirstName, LastName, DOB) VALUES(@Title, '@FirstName', '@LastName', '@DOB')", sqlConn)

' Add Parameters
sqlComm.Parameters.Add(New SqlCeParameter("@Title", SqlDbType.NVarChar)).Value = ComboTitle.SelectedItem.ToString()
sqlComm.Parameters.Add(New SqlCeParameter("@FirstName", SqlDbType.NVarChar)).Value = txtFirstName.Text
sqlComm.Parameters.Add(New SqlCeParameter("@LastName", SqlDbType.NVarChar)).Value = txtLastName.Text
sqlComm.Parameters.Add(New SqlCeParameter("@DOB", SqlDbType.DateTime)).Value = DteDOB.Value.ToUniversalTime

' Insert Into Database
Try
    sqlComm.ExecuteNonQuery()
Catch ex As Exception
    MessageBox.Show("Failed To Update Your Details:" & vbCrLf & ex.Message)
    Exit Sub
End Try

' Close Connection
sqlConn.Close()
4

2 回答 2

5

尝试杀死撇号:

插入个人资料(Title、FirstName、LastName、DOB)值(@Title、'@FirstName'、'@LastName'、'@DOB')

应该只是:

插入个人资料(Title、FirstName、LastName、DOB)值(@Title、@FirstName、@LastName、@DOB)

于 2012-07-12T18:46:13.850 回答
0

从 INSERT 语句中的@DOB 中取出单引号。他们不需要。

于 2012-07-12T18:47:25.160 回答