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

正如我之前在这个网站上所说的那样——整个User Instance 和 AttachDbFileName=方法是有缺陷的——充其量是!Visual Studio 将在.mdf文件周围进行复制,并且很可能,您的INSERT工作正常 - 但您最终只是查看了错误的 .mdf 文件

如果您想坚持使用这种方法,请尝试在myconnection.Close()调用上设置断点 - 然后.mdf使用 SQL 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 回答