1
Imports System.Data
Imports System.Data.SqlClient

Public Class Reservation
   Dim sqlConn As SqlConnection

Private Sub Reservation_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    sqlConn = New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|EasyReserv.mdf;Integrated Security=True")
End Sub

Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
    Dim addSQL As String = "INSERT INTO CUSTOMER (  customerID, name, contactNumber, email ) VALUES (1, 'James', '012444444','james@gmail.com')"
    Dim addCmd As SqlCommand = New SqlCommand(addSQL, sqlConn)
    sqlConn.Open()
    addCmd.ExecuteNonQuery()
    sqlConn.Close()
End Sub

End Class

コード内にエラーはなく、ExecuteNonQuery1 も返されますが、データベースにレコードがありません。

4

3 に答える 3

0

この状況は非常に一般的です。接続文字列は AttachDbFilename=|DataDirectory|EasyReserv.mdf.
これは、プログラムで使用される MDF ファイルが、置換文字列 |DataDirectory| が指すフォルダーにあることを意味します。これは、アプリケーションが ASP.NET アプリか WinForms アプリかによって、BIN\DEBUG または BIN フォルダーになります。(DataDirectory の場所を参照してください)。挿入は期待どおりに機能しますが、MDF ファイルはサーバー エクスプローラーによって別のディレクトリ (通常はプロジェクト フォルダー) に接続されています。そのため、サーバー エクスプローラーでデータベースを見ると、追加されたレコードは表示されません。Copy To Output Directoryまた、MDF ファイルのプロパティがNeverまたはCopy if Newerに設定されているかどうかも確認してください。そうしないと、Visual Studio でのデバッグ中にアプリケーションを再起動するたびに、プログラムによって行われたすべての変更が失われる危険があります。

于 2013-06-12T09:53:11.603 に答える
-1

SqlConn を閉じる前に、SqlDataReader を使用して挿入された顧客を抽出してみてください。レコードが間違ったデータベースに挿入されているかどうかを確認している可能性があります。

于 2013-06-12T09:41:53.243 に答える