来自基于Web的背景,我没有太多开发和部署.NET桌面应用程序的经验,并希望了解将客户端计算机上已部署的win表单应用程序连接到SQL Server的本地实例的过程。 。
我已经创建了一个测试表单应用程序,我可以在运行时通过win表单配置我的连接字符串,其中包含DBname,Server,UserID和Password的文本框..它工作正常(因为我可以提取数据)我在调试中运行时,从我设置的任何服务器/ db)。为了在客户机(我的另一台PC)上测试它,我使用InstallShield和VS13并创建了一个安装包。我创建了一个在我的开发机器上本地运行的数据库的备份,并在安装了SQL Server的客户机上重新创建了它。我安装了应用程序,并运行了配置表单。遗憾的是,当我在客户端计算机上运行时,一旦代码执行“更改连接字符串”功能 - “对象引用未设置为实例”,我就会收到错误。我很好奇可能出现的问题,并希望了解如何进行故障排除,或建议他们是否是更好,更首选的方法来在客户端计算机上安装应用程序并让它与客户端进行通信本地SQL服务器。
非常感谢提前!
------ ------代码 **请注意,当我将其作为打包的exe运行时,所有消息框都是为了隔离代码断开的位置。
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
Dim Con As New StringBuilder("Data Source=")
Con.Append(txtServer.Text)
Con.Append(";Initial Catalog=")
Con.Append(txtDBName.Text)
Con.Append(";User ID=")
Con.Append(txtUserID.Text)
Con.Append(";Password=")
Con.Append(txtPass.Text)
Con.Append(";Integrated Security=SSPI;")
Dim strCon As String = Con.ToString()
MessageBox.Show("About to call the update xml method. Server: " & txtServer.Text & " DB: " & txtDBName.Text & " User: " & txtUserID.Text & "Password: " & txtPass.Text)
updateConfigFile(strCon)
MessageBox.Show("Made it out of updateConfigFile Method")
Dim Db As New SqlConnection()
ConfigurationManager.RefreshSection("connectionStrings")
Db.ConnectionString = ConfigurationManager.ConnectionStrings("connex").ToString()
Dim da As New SqlDataAdapter("select * from TestTable", Db)
Dim dt As New DataTable()
da.Fill(dt)
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "TestColumn"
Catch ex As Exception
MessageBox.Show(ConfigurationManager.ConnectionStrings("con").ToString() + ".This is invalid connection", "Incorrect server/Database")
End Try
End Sub
Public Sub updateConfigFile(con As String)
Try
MessageBox.Show("We are in updateConfigFileMethod")
Dim XmlDoc As New XmlDocument()
MessageBox.Show("About to load config file")
XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
For Each xElement As XmlElement In XmlDoc.DocumentElement
If xElement.Name = "connectionStrings" Then
'setting the coonection string
xElement.FirstChild.Attributes(2).Value = con
End If
Next
MessageBox.Show("XML Created, about to save config file. Connnection string: " & con)
XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
End Sub