0

vb.net および sql CE 3.5 を使用した wpf に次のコードがあり、私の OS は win7 64 ビットです。Visual studios は 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 ステートメントが間違っているようです。

前もって感謝します。

4

1 に答える 1

1

VALUES が始まる前にブラケットを閉じていないようです...

"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)

同様に、2番目のクエリでも同じことが起こりINSERTます....

于 2012-07-22T09:45:42.967 に答える