解决方案 »

  1.   

    1、首先确保连接字符串正确
    2、设置sql服务器允许远程访问
      

  2.   

    你在另外一台机器上,用odbc连数据库,看是否能连的上?
    如果连不上,确认一下:
    1、sql server是否设置成运行远程连接
    2、sql server服务器的防火墙是否开着(如果开着,关掉)
      

  3.   

    你在另外一台机器上,用odbc连数据库,看是否能连的上?
    如果连不上,确认一下:
    1、sql server是否设置成允许远程连接
    2、sql server服务器的防火墙是否开着(如果开着,关掉)
      

  4.   

    如果你仅仅是做一个客户端程序,建议使用LocalDB代替SQL Server,它的运行时很小,分发和配置也简单。也可以用Access SQLite SqlCE等等。
      

  5.   

    你做一个界面,在客户端连接不上的时候可以随时配置,把连接保存在配置文件里面,            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("请将信息输入完整。");
                }
            }
      

  6.   

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

  7.   

    1、你先搞清楚,客户端能不能连数据库服务器。拿odbc试下,实在不行,你在客户端装一个sql server,看能够通过ip访问数据库服务器不能。数据库访问的接口,都是.net framework封装好的,只要客户端安装的framework框架,都是可以访问数据库的,你打包不涉及打不打访问数据库的东东。你可以写一个简单的访问程序,就做一件事事情,执行select * from username,查询你数据库的某张表,看能否访问。2、打包的工具,很多
    visual studio本身可以打包,另外可以使用nsis、installshield等
      

  8.   

    程序打包和远程访问SQL可没有什么必然的联系哦!!
    除非你是用插件!!
    建议你还是从网络方面入手吧,首先检查下对方的电脑能不能ping通数据库所在电脑的IP,如果ping的通,就检查下你SQL是否允许远程访问。
    再不行就检查下对方的防火墙,这一点是比较坑的地方,如果对方防火墙开启,但你装的程序却没有被例外的话,也会出现这种问题!!
    可能还有我没想到的,想到了再和你说!!
      

  9.   

    你的这个IP是局域网IP还是外网IP?