1

ユーザーにプロファイル名を入力してから [追加] をクリックしてもらいたいフォーラムがあり、テキスト ボックスに入力した内容がテーブルの ProfileName フィールドに追加されます。System.Data.OleDb.OleDbException[追加] ボタンをクリックすると、「 system.data.dllでハンドルされていないタイプの例外が発生しました」というエラーが表示されます。これが私のコードです:

Private Sub RefreshData()
    Dim cnn As New OleDb.OleDbConnection
    If Not cnn.State = ConnectionState.Open Then
        cnn.Open()
    End If
    Dim da As New OleDb.OleDbDataAdapter("SELECT id AS [ID], " & _
        "ProfileName AS [Name] " & _
        " FROM Profile ORDER BY id", cnn)
    Dim dt As New DataTable
    da.Fill(dt)
    cnn.Close()
    Me.dgvData.DataSource = dt
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)                 Handles Button1.Click
    If (TextBox1.Text = "") Then
        MsgBox("Please enter a profile name.")
    Else
        Dim cnn As New OleDb.OleDbConnection("Provider=Microsof… Source=c:\Data\Database.mdb     ;Extended Properties=Paradox 5.x;")
        Dim cmd As New OleDb.OleDbCommand
        If Not cnn.State = ConnectionState.Open Then
            cnn.Open()
        End If

        cmd.Connection = cnn
        cmd.CommandText = "INSERT INTO Profile(ProfileName) " & _
            "VALUES (" & Me.TextBox1.Text & "')"
        cmd.ExecuteNonQuery()

        cnn.Close()
        Dim oForm As addsnake
        oForm = New addsnake
        oForm.Show()
        oForm = Nothing
        Me.Close()
    End If
End Sub
4

1 に答える 1

1

さらに情報がなければ、次のことをお勧めします。

id に ID のエイリアスを与える必要はありません:

SELECT id AS [ID]

ただし、必要に応じて角括弧で囲むこともできます。

SELECT [id]

次の行にアポストロフィがありません:

"VALUES (" & Me.TextBox1.Text & "')"

また、connectionstrings.com で接続文字列を確認してください

于 2013-09-19T20:20:04.007 に答える