使用脚本启用到sql express的远程连接

时间:2012-02-04 02:09:21

标签: c# deployment database-connection sql-server-express

我正在使用sql server express 2008部署应用程序。在我的应用程序的先决条件部分,我已经包括:

enter image description here

因此,当用户安装我的应用程序时,它也将安装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");
        }

为了使该代码有效,我必须执行以下操作:

enter image description here

enter image description here


所以我的问题是:

我如何使用代码配置它?当我部署我的应用程序时,我希望我的应用程序安装sql express,但我也想启用tcp / IP连接,启用一些端口,最后为帐户“SA”创建密码,因为我无法连接到如果sa帐户没有密码,则远程访问数据库。

或许我要求的很多,我做错了。也许我应该只为我在部署数据库引擎时计划的数据库做这一切。什么都比较容易。我很难部署这个可能会更好地去除本地数据库和wcf服务以便远程在本地数据库上创建CRUD操作。

EIDT

我发现这3个链接声称做了类似的事情,但仍然无法使其发挥作用。

1)http://support.microsoft.com/kb/839980

2)http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/c7d3c3af-2b1e-4273-afe9-0669dcb7bd02/

3)http://www.sql-questions.com/microsoft/SQL-Server/34211977/can-not-connect-to-sql-2008-express-on-same-lan.aspx

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://digitalformula.net/articles/how-to-perform-an-unattended-installation-of-sql-server-2008-express/

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连接字符串设置,而不是将硬核放在代码中..这将帮助您自定义应用程序首次运行自定义,例如数据库创建。