我正在使用sql server express 2008部署应用程序。在我的应用程序的先决条件部分,我已经包括:
因此,当用户安装我的应用程序时,它也将安装sql express。
然后我将能够以:
连接到该数据库引擎 try
{
// database should be in the same network
SqlConnection conn =
new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=True");
conn.Open();
MessageBox.Show("Connection succesfull");
}
catch
{
MessageBox.Show("Unable to connect");
}
现在,当我安装不同的应用程序(客户端版本)时,我希望能够连接到该数据库引擎。我设法通过以下方式连接到它:
try
{
SqlConnection conn =
new SqlConnection(@"Data Source=192.168.0.120\sqlexpress,22559; USER=sa; PASSWORD=*********");
conn.Open();
MessageBox.Show("Connection succesfull");
}
catch
{
MessageBox.Show("Unable to connect");
}
为了使该代码有效,我必须执行以下操作:
我如何使用代码配置它?当我部署我的应用程序时,我希望我的应用程序安装sql express,但我也想启用tcp / IP连接,启用一些端口,最后为帐户“SA”创建密码,因为我无法连接到如果sa帐户没有密码,则远程访问数据库。
或许我要求的很多,我做错了。也许我应该只为我在部署数据库引擎时计划的数据库做这一切。什么都比较容易。我很难部署这个可能会更好地去除本地数据库和wcf服务以便远程在本地数据库上创建CRUD操作。
我发现这3个链接声称做了类似的事情,但仍然无法使其发挥作用。
答案 0 :(得分:3)
下载sql server express 2008(SQLEXPR32_x86_ENU.exe)并将其放在我的c盘根目录下。然后我用以下参数安装它:
C:\ SQLEXPR32_x86_ENU.exe / q / hideconsole / action = Install / features = SQL / instancename = SQLEXPRESS / enableranu = 1 / sqlsvcaccount =“NT Authority \ Network Service”/ AddCurrentUserAsSqlAdmin / skiprules = RebootRequiredCheck / TCPENABLED = 1 < / p>
我添加/ TCPENABLED = 1以启用TCP / IP
答案 1 :(得分:1)
这些可能会有所帮助,我已经在我的todo列表上有一段时间用于我必须为我的应用程序设置的计算机与Sql Server 2008 Express一起运行。它基本上是一种设置SQL08exp安装程序将读取的脚本的方法,并根据您在脚本中设置的内容自动执行大量设置。
http://blogesh.wordpress.com/2008/09/23/silent-install-of-sql-server-2008/
答案 2 :(得分:1)
我建议你创建修改后的bootstrapper package
来安装带有自定义的Sql Server 2005 Express。
作为替代方案,您还可以使用安装程序中的自定义操作来使用SMO更改目标服务器。
这样的事情:
Server server = new Server( "ServerName\\InstanceName" );
server.ConnectionContext.Connect();
server.Settings.LoginMode = ServerLoginMode.Mixed;
server.Settings.Alter();
我们使用SMO对象创建用户登录并将用户关联到我们创建的应用程序数据库。如果数据库不可用,甚至运行sql脚本来创建数据库..
参考这些链接:
Configuring SQL Express During Installation
Configuring SQL Server when included as a requirement
注意:在App.config文件中创建sql server连接字符串设置,而不是将硬核放在代码中..这将帮助您自定义应用程序首次运行自定义,例如数据库创建。