通过VB.NET将DateTime插入SQL Server CE数据库

时间:2012-07-12 18:40:21

标签: sql database vb.net sql-server-ce

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

  

日期格式中存在语法错误。 [表达式= @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()

2 个答案:

答案 0 :(得分:5)

尝试杀死叛逆者:

  

INSERT INTO个人资料(Title,FirstName,LastName,DOB)     VALUES(@Title,'@ FirstName','@ LastName','@ DOB')

应该只是:

  

INSERT INTO个人资料(Title,FirstName,LastName,DOB)     VALUES(@标题,@ FirstName,@ LastName,@ DOB)

答案 1 :(得分:0)

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