Vb.net 如何为Windows窗体正确配置SQL Server数据库

Vb.net 如何为Windows窗体正确配置SQL Server数据库,vb.net,winforms,sql-server-2008,Vb.net,Winforms,Sql Server 2008,我正在尝试创建Windows窗体应用程序,这是我第一次用Visual Basic构建应用程序。我非常熟悉在VisualStudio中开发网站,但是数据库连接的工作方式似乎大不相同 我正在尝试构建一个简单的数据输入表单,用户可以在其中保存输入,这将运行一个insert查询,将字段插入数据库表中。首先,我开始在SQLServerManagementStudio中创建一个新的数据库。我创建这个数据库的方式与创建新数据库的web应用程序完全相同(基本上只是给它一个名称并接受所有其他默认设置)。但是,我不

我正在尝试创建Windows窗体应用程序,这是我第一次用Visual Basic构建应用程序。我非常熟悉在VisualStudio中开发网站,但是数据库连接的工作方式似乎大不相同

我正在尝试构建一个简单的数据输入表单,用户可以在其中保存输入,这将运行一个insert查询,将字段插入数据库表中。首先,我开始在SQLServerManagementStudio中创建一个新的数据库。我创建这个数据库的方式与创建新数据库的web应用程序完全相同(基本上只是给它一个名称并接受所有其他默认设置)。但是,我不知道如何从Visual Basic 2010连接到此实例。当我尝试添加新连接时,我选择Microsoft Sql Server数据库文件(SqlClient)。但当我浏览我的数据库文件时,我最终遇到了一个访问被拒绝的错误。我在这方面做了一些尝试,做了一些研究,但没有任何效果,我已经作为管理员运行了VisualBasic

我尝试的第二件事似乎离工作更近了,那就是我添加了一个新项目,向我的项目中添加了一个基于服务的数据库,并通过VisualBasicsDatabaseExplorer配置了表。这就正确地配置了我的数据库来构建表。现在,在配置数据集和表适配器并将填充和插入查询添加到表适配器后,我尝试调用我的插入查询(在向导中配置),该查询获取正确的参数值,但当我尝试通过数据库资源管理器查看表时,表中没有添加任何行,它是空的

以下是在TableAdapter查询配置向导中配置的插入查询

INSERT INTO DispatchType
                     (NonEmergency, Emergency, NormalCall, WaitReturn, GWWheelchair, PatientWheelchair, Stretcher, ChiefComplaint)
VALUES        (@NonEmergency,@Emergency,@NormalCall,@WaitReturn,@GWWheelchair,@PatientWheelchair,@Stretcher,@ChiefComplaint)
下面是我如何调用插入查询

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim conn As New SqlClient.SqlConnection
    conn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Office-Admin\documents\visual studio 2010\Projects\Dispatch\Dispatch\Dispatch.mdf;Integrated Security=True;User Instance=True"
    conn.Open()
    Me.DispatchTypeTableAdapter.InsertQuery(RadioButton4.Checked, RadioButton5.Checked, RadioButton7.Checked, RadioButton6.Checked, RadioButton16.Checked, RadioButton15.Checked, RadioButton17.Checked, TextBox1.Text)
    conn.Close()
End Sub
起初我没有添加sql连接字符串,也没有打开和关闭它,但即使这样,它也能正常运行,没有错误,但我看不到添加到表中的任何位置的值


因此,我需要有关如何使用windows窗体应用程序正确配置sql server数据库的帮助,以便多个用户能够在多台PC上运行该应用程序,并将所有数据存储到一个本地数据库中。我不知道我做错了什么,但我显然没有正确配置它。非常感谢您的帮助。

问题不在于QSL服务器的配置,而在于您从未真正执行SQL语句

而不是:

Me.DispatchTypeTableAdapter.InsertQuery(RadioButton4.Checked, RadioButton5.Checked, RadioButton7.Checked, RadioButton6.Checked, RadioButton16.Checked, RadioButton15.Checked, RadioButton17.Checked, TextBox1.Text)
这样做:

Dim command as new sqlcommand(conn)
command.queryText = "INSERT INTO DispatchType NonEmergency, Emergency, NormalCall, WaitReturn, GWWheelchair, PatientWheelchair, Stretcher, ChiefComplaint) VALUES (@NonEmergency,@Emergency, @NormalCall,@WaitReturn,@GWWheelchair,@PatientWheelchair,@Stretcher,@ChiefComplaint)"
command.parameters.addWithValue("@NonEmergency", RadioButton4.Checked) 'Repeat for each parameter
command.executeNonQuery

我尝试了这个,但在数据库表中仍然没有看到任何内容。我想问你,对于要由多台PC使用的应用程序,我应该尝试连接到存储在一台计算机上Program Files/MSSQLServer文件夹中的本地数据库,还是应该将该数据库的实例存储在我的应用程序文件夹VBApplication/ApplicationFolder/Database.mdf中?如果我的技术语言不正确,请原谅。因为我想我发现了一个问题,那就是,自从我使用向导以来,当它为我创建连接字符串时,它没有放置正确的文件位置,因此我将其更改为此
,如果您希望跨多台计算机共享数据,则需要所有计算机都连接到的实际SQL Server实例。您需要下载SQL Server express并将其安装到所有其他计算机都可以与之通信的计算机上。然后,您需要在该计算机上创建数据库,然后更改应用程序中的连接字符串t指向该计算机而不是本地计算机。理论上,您也可以使用基于云的服务(如Microsoft Azure)来托管数据库,而无需在站点上使用。我是将DataSource=部分更改为数据库路径,还是将AttachDbFilename=更改为数据库路径?这是一个从我的应用程序中创建的有效连接字符串示例。“数据源=hdcvs食品;初始目录=FoodSafetyDevelopment;用户id=PAFoodSafetyAppUser;密码=password;”。数据源是中心服务器的主机名或IP地址,初始目录是该服务器上数据库的名称。用户id和密码应设置为该服务器上具有写入数据库权限的凭据。