我有一个Windows窗体应用程序来读取,创建和更新成员,应用程序已准备好,我想在三个或四个PC上部署/安装它。
在开发过程中,我使用了这样的连接字符串:
using (SqlConnection connection =
new SqlConnection(
"Data Source=MY-PC\\JGSQLSERVER;Initial Catalog=TESTSUB;Integrated Security=True"))
有一个组织网站运行的域,并且有SQL服务器服务器。我在SQL Web服务器中创建了相同的表结构。
我的问题是当我在任何电脑上安装小型Windows应用程序时,是否需要更改连接地址以便应用程序可以连接?
例如,如上所述:
using (SqlConnection connection =
new SqlConnection("Data Source=web servers address\\ webSQLSERVER;Initial Catalog=TESTSUB;Integrated Security=True"))
答案 0 :(得分:1)
正是为了这个,最好将连接字符串放在某种配置文件中,或者在app.config中,或者在其他类型的配置中加密。如果执行此操作,则在将应用程序部署到不同环境或SQL服务器地址更改时,无需重新构建应用程序:
配置:
<configuration>
<connectionStrings>
<add name="MyConnectionString" connectionString="your_connection_string" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
C#:
using (SqlConnection connection =
new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"])){
//do stuff
}
答案 1 :(得分:0)
简短回答:是的。
否则你的应用程序不知道在哪里可以找到它的数据(基础),并且仍会在本地系统上查找它(无法找到它)。
答案 2 :(得分:0)
是的,您需要将应用指向正确的服务器。除非SQL Server服务与客户端应用程序在同一台计算机上运行,或者在同一域中运行,否则您很可能希望使用SQL身份验证,而不是Windows身份验证。您需要在SQL Server中创建一个用户并将其添加到您的数据库,同时授予它您的应用程序所需的任何权限,我想用户通常是一个DBO。然后使用不同的连接字符串:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
有关不同数据库的各种连接字符串的示例,请参阅http://www.connectionstrings.com/。我希望它有所帮助。