1

私は vb.net の初心者で、Visual Studio 2005 でウィンドウ フォームを SQL Server Express データベースに接続して、後でレコードの追加、検索、更新、および削除を実行できるようにする方法を知りたいと考えています。

ここに私のコードがあります:

Dim mycommand As SqlCommand
Dim dr As SqlDataReader
Dim dr1 As SqlDataReader
Dim ra As Integer

Private Sub cmdsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)       Handles cmdsave.Click

    Using myconnection As SqlConnection = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database\app.mdf;Integrated Security=True;User Instance=True")
        myconnection.Open()
        mycommand = New SqlCommand("insert into staff([FirstName],[LastName],[Address],[DOB], " & _
                                   "[TelephoneNum], [DateJoinIn], [HighestQualifi], [AppointedAs], [Salary]) " & _
                                   "VALUES (@first, @last, @address, @dob, @tel, @dateJ, @highQ, @appointed, @sal)", myconnection)

        mycommand.Parameters.AddWithValue("@first", txtfname.Text)
        mycommand.Parameters.AddWithValue("@last", txtlname.Text)
        mycommand.Parameters.AddWithValue("@address", txtaddress.Text)
        mycommand.Parameters.AddWithValue("@dob", txtdob.Text)
        mycommand.Parameters.AddWithValue("@tel", txttelephone.Text)
        mycommand.Parameters.AddWithValue("@dateJ", txtdjoinin.Text)
        mycommand.Parameters.AddWithValue("@highQ", txthqualifi.Text)
        mycommand.Parameters.AddWithValue("@appointed", txtappoint.text)
        mycommand.Parameters.AddWithValue("@sal", txtsalary.Text)
        mycommand.ExecuteNonQuery()

        myconnection.Close()
    End Using

End Sub

問題は、データベースに保存されていないことです????? 助けてください

4

1 に答える 1

0

このサイトで以前に述べたように、ユーザー インスタンス全体と AttachDbFileName=のアプローチには欠陥があります。せいぜい! Visual Studio は.mdfファイルをコピーし、おそらく問題なく動作しますが、最終的に間違った .mdf ファイルINSERTを見ているだけです!

このアプローチに固執したい場合は、myconnection.Close()呼び出しにブレークポイントを設定してから、 .mdfSQL Server Mgmt Studio Express でファイルを調べてください。データがそこにあることはほぼ確実です。

私の意見では、本当の解決策は

  1. SQL Server Express をインストールします (とにかく、既に完了しています)。

  2. SQL Server Management Studio Express をインストールする

  3. SSMS Expressでデータベースを作成し、論理名を付けます (例: MyAppDatabase)

  4. 論理データベース名(サーバー上で作成したときに指定) を使用して接続し、物理データベース ファイルとユーザー インスタンスをいじらないでください。その場合、接続文字列は次のようになります。

    Data Source=.\\SQLEXPRESS;Database=MyAppDatabase;Integrated Security=True
    

    そして、それ以外はすべて以前とまったく同じです...

于 2012-05-09T17:26:56.130 に答える