Wpf SQL CE Insert语句与Vb.net

Wpf SQL CE Insert语句与Vb.net,wpf,vb.net,sql-server-ce,Wpf,Vb.net,Sql Server Ce,我用vb.net和sql CE 3.5在wpf中编写了以下代码,我的操作系统是win7 64位。视觉工作室是2010年。我导入了以下内容: Imports System.ComponentModel Imports System.Data.SqlServerCe Imports System.Data 守则的主要部分是: Dim Con As SqlCeConnection = New SqlCeConnection(DataSource) Di

我用vb.net和sql CE 3.5在wpf中编写了以下代码,我的操作系统是win7 64位。视觉工作室是2010年。我导入了以下内容:

Imports System.ComponentModel
Imports System.Data.SqlServerCe
Imports System.Data
守则的主要部分是:

            Dim Con As SqlCeConnection = New SqlCeConnection(DataSource)
            Dim Cmd As SqlCeCommand
            If Con.State = ConnectionState.Closed Then Con.Open()

            'Inserting Prime Details
            Try
                Cmd = New SqlCeCommand("INSERT INTO [ContactPrime]([ID],[Namee],[Company],[JobTitle],[Number],[Address],[Typee] VALUES (@ID,@Namee,@Company,@JobTitle,@Number,@Address,@Typee)", Con)
                With InsertObject.Prime
                    Cmd.Parameters.Add(New SqlCeParameter("@ID", SqlDbType.NVarChar)).Value = .ID
                    Cmd.Parameters.Add(New SqlCeParameter("@Namee", SqlDbType.NVarChar)).Value = .Namee
                    Cmd.Parameters.Add(New SqlCeParameter("@Company", SqlDbType.NVarChar)).Value = .Company
                    Cmd.Parameters.Add(New SqlCeParameter("@JobTitle", SqlDbType.NVarChar)).Value = .JobTitle
                    Cmd.Parameters.Add(New SqlCeParameter("@Number", SqlDbType.NVarChar)).Value = .Number
                    Cmd.Parameters.Add(New SqlCeParameter("@Address", SqlDbType.NVarChar)).Value = .Address
                    Cmd.Parameters.Add(New SqlCeParameter("@Typee", SqlDbType.NVarChar)).Value = .Typee
                End With
                Cmd.ExecuteNonQuery()
            Catch ex As Exception

            End Try


            'Inserting  Numbers of Contact
            Try
                For Each num In InsertObject.Numbers
                    Cmd = New SqlCeCommand("INSERT INTO [ContactNumbers]([ContactID],[ID],[Title],[Mobile],[Land],[Fax],[Email],[IsPrimary] VALUES (@ContactID,@ID,@Title,@Mobile,@Land,@Fax,@Email,@IsPrimary)", Con)
                    With num
                        Cmd.Parameters.Add(New SqlCeParameter("@ContactID", SqlDbType.NVarChar)).Value = .ContactID
                        Cmd.Parameters.Add(New SqlCeParameter("@ID", SqlDbType.NVarChar)).Value = .ID
                        Cmd.Parameters.Add(New SqlCeParameter("@Title", SqlDbType.NVarChar)).Value = .Title
                        Cmd.Parameters.Add(New SqlCeParameter("@Mobile", SqlDbType.NVarChar)).Value = .Mobile
                        Cmd.Parameters.Add(New SqlCeParameter("@Land", SqlDbType.NVarChar)).Value = .Land
                        Cmd.Parameters.Add(New SqlCeParameter("@Fax", SqlDbType.NVarChar)).Value = .Fax
                        Cmd.Parameters.Add(New SqlCeParameter("@Email", SqlDbType.NVarChar)).Value = .Email
                        Cmd.Parameters.Add(New SqlCeParameter("@IsPrimary", SqlDbType.Bit)).Value = .IsPrimary
                    End With
                    Cmd.ExecuteNonQuery()
                Next
            Catch ex As Exception

            End Try
我得到的错误是:

A first chance exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll
你能告诉我哪里做错了吗。连接工作得很好,我用select语句进行了测试,它工作了,似乎我的insert语句是错误的


提前感谢您。

看来,您并没有在值开始之前关闭括号

"INSERT INTO [ContactNumbers]([ContactID],[ID],[Title],[Mobile],[Land],
 [Fax],[Email],[IsPrimary] 
 VALUES (@ContactID,@ID,@Title,@Mobile,@Land,@Fax,@Email,@IsPrimary)
上述语句中缺少结束括号,因此更正后的查询如下:

"INSERT INTO [ContactNumbers]([ContactID],[ID],[Title],[Mobile],[Land],
 [Fax],[Email],[IsPrimary])
 VALUES (@ContactID,@ID,@Title,@Mobile,@Land,@Fax,@Email,@IsPrimary)

同样,同样的事情也发生在第二次
INSERT
query中….

Hahaha,谢谢你的帮助,看来我需要尽快去看眼科医生。