关于c#程序在别的电脑上运行的有关问题

关于c#程序在别的电脑上运行的问题
我写来一个c#的程序,其中用到了数据库的访问.打包后在别的电脑上运行,总是无法访问数据库。本地可以通过访问ip的形式,进行数据库访问。希望有人可以提供一下经验。
------解决思路----------------------
你做一个界面,在客户端连接不上的时候可以随时配置,把连接保存在配置文件里面,

            if (this.txtDBName.Text.Trim() != "" && this.txtLoginUser.Text.Trim() != "" && this.txtServerName.Text.Trim() != "" && this.txtUserPwd.Text.Trim() != "")
            {
                string values = "server=" + this.txtServerName.Text.Trim() + "; DataBase=" + this.txtDBName.Text.Trim() + "; Persist Security Info=True;uid=" + this.txtLoginUser.Text.Trim() + ";pwd=" + this.txtUserPwd.Text.Trim() + "";

                if (MessageBox.Show("确定保存数据库配置吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    // 保存 Applicationi 范围的设置
                    string configFileName = Application.ExecutablePath + ".config";
                    System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                    doc.Load(configFileName);
                    string configString = @"configuration/applicationSettings/exe.Properties.Settings/setting[@name='AppConnection']/value";
                    System.Xml.XmlNode configNode = doc.SelectSingleNode(configString);
                    if (configNode != null)
                    {
                        configNode.InnerText = DES.DESEncrypt(values, "XXXWWWYY");
                        doc.Save(configFileName);
                        // 刷新应用程序设置,这样下次读取时才能读到最新的值。
                        Properties.Settings.Default.Reload();
                        MessageText = "数据库配置保存成功,请重新运行!";
                        MessageBox.Show(MessageText, "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //this.Dispose();
                        //Application.Exit();
                    }
                    else
                    {
                        MessageText = "数据库配置失败!";
                        MessageBox.Show(MessageText, "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }              


                this.Dispose();
                Application.Exit();
            }
            else
            {
                MessageBox.Show("请将信息输入完整。");
            }
        }

------解决思路----------------------
引用:
用的是sql,而且我已经开启远程服务了,可以在通过iP在本机*问,我现在怀疑是,打包的时候,是不是有些查件没有打包进去。程序的功能一遇到访问数据库的时候就无法访问,其他的功能都可以实现。。。。谁有过程序打包经验的,希望给点意见

1、你先搞清楚,客户端能不能连数据库服务器。拿odbc试下,实在不行,你在客户端装一个sql server,看能够通过ip访问数据库服务器不能。数据库访问的接口,都是.net framework封装好的,只要客户端安装的framework框架,都是可以访问数据库的,你打包不涉及打不打访问数据库的东东。

你可以写一个简单的访问程序,就做一件事事情,执行select * from username,查询你数据库的某张表,看能否访问。

2、打包的工具,很多
visual studio本身可以打包,另外可以使用nsis、installshield等