2012-07-12 74 views
1

我想用下面的代碼插入到一個數據庫中插入日期時間到SQL Server CE數據庫,但是,每次我得到一個錯誤:通過VB.NET

There was a syntax error in the date format. [ Expression = @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

在此代碼中,VALUES(@Title,'@ FirstName','@LastName','@DOB')'嘗試刪除撇號 – tcarvin 2012-07-12 18:44:24

回答

5

嘗試殺死apostrophies:

INSERT INTO Profiles(Title, FirstName, LastName, DOB) VALUES (@Title, '@FirstName', '@LastName', '@DOB')

應該只是:

INSERT INTO Profiles(Title, FirstName, LastName, DOB) VALUES (@Title, @FirstName, @LastName, @DOB)

+0

您擊敗了我!在我發佈我的答案之前沒有注意到。 – Jim 2012-07-12 18:48:12

+0

@Jim tcarvin的評論也擊敗了我。 – LarsTech 2012-07-12 18:48:46

+0

該死的,出於某種原因,我認爲這是最好的。當我被允許時,將在5分鐘內批准您的答案!感謝您的幫助:-) – Chris 2012-07-12 18:50:29

0

採取單引號從INSERT語句中的@DOB出來。他們不需要。