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

qq664781443 2014-11-10 08:23:38
我写来一个c#的程序,其中用到了数据库的访问.打包后在别的电脑上运行,总是无法访问数据库。本地可以通过访问ip的形式,进行数据库访问。希望有人可以提供一下经验。
...全文
423 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq664781443 2014-11-12
  • 打赏
  • 举报
回复
有没有可能是我程序本身无法运行,但是我在本地电脑上运行的时候是正常的,因为我的后续操作需要在登录界面之后操作,但是登录界面就需要连接数据库。注册界面也要连接数据库,我也用工具检测到了程序所需要的插件,现在看到说是防火墙的原因,我准备试试。希望可以成功。谢谢各位的指导,我在研究几天,看看情况。
江南小鱼 2014-11-11
  • 打赏
  • 举报
回复
引用 10 楼 qq664781443 的回复:
用的是sql,而且我已经开启远程服务了,可以在通过iP在本机上访问,我现在怀疑是,打包的时候,是不是有些查件没有打包进去。程序的功能一遇到访问数据库的时候就无法访问,其他的功能都可以实现。。。。谁有过程序打包经验的,希望给点意见
1、你先搞清楚,客户端能不能连数据库服务器。拿odbc试下,实在不行,你在客户端装一个sql server,看能够通过ip访问数据库服务器不能。数据库访问的接口,都是.net framework封装好的,只要客户端安装的framework框架,都是可以访问数据库的,你打包不涉及打不打访问数据库的东东。 你可以写一个简单的访问程序,就做一件事事情,执行select * from username,查询你数据库的某张表,看能否访问。 2、打包的工具,很多 visual studio本身可以打包,另外可以使用nsis、installshield等
qq664781443 2014-11-11
  • 打赏
  • 举报
回复
用的是sql,而且我已经开启远程服务了,可以在通过iP在本机上访问,我现在怀疑是,打包的时候,是不是有些查件没有打包进去。程序的功能一遇到访问数据库的时候就无法访问,其他的功能都可以实现。。。。谁有过程序打包经验的,希望给点意见
allen0118 2014-11-11
  • 打赏
  • 举报
回复
你做一个界面,在客户端连接不上的时候可以随时配置,把连接保存在配置文件里面,

            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("请将信息输入完整。");
            }
        }
我现在在路上 2014-11-11
  • 打赏
  • 举报
回复
设置远程可访问数据库 关闭或让数据库程序通过防火墙
於黾 2014-11-11
  • 打赏
  • 举报
回复
你用的什么数据库? 有的数据库需要安装客户端才能访问.
xian_wwq 2014-11-11
  • 打赏
  • 举报
回复
在不能访问数据库的机器上, 使用数据库的客户端或者第三方软件测试数据库是否可连接。 在这个前提成立后,再找程序的问题。 如果程序有问题,建议在关键点多加打印日志, 看看连接字符串等关键信息是否正确。
玉儿 2014-11-11
  • 打赏
  • 举报
回复
你的这个IP是局域网IP还是外网IP?
程序猿老曾 2014-11-11
  • 打赏
  • 举报
回复
程序打包和远程访问SQL可没有什么必然的联系哦!! 除非你是用插件!! 建议你还是从网络方面入手吧,首先检查下对方的电脑能不能ping通数据库所在电脑的IP,如果ping的通,就检查下你SQL是否允许远程访问。 再不行就检查下对方的防火墙,这一点是比较坑的地方,如果对方防火墙开启,但你装的程序却没有被例外的话,也会出现这种问题!! 可能还有我没想到的,想到了再和你说!!
threenewbee 2014-11-10
  • 打赏
  • 举报
回复
如果你仅仅是做一个客户端程序,建议使用LocalDB代替SQL Server,它的运行时很小,分发和配置也简单。 也可以用Access SQLite SqlCE等等。
江南小鱼 2014-11-10
  • 打赏
  • 举报
回复
你在另外一台机器上,用odbc连数据库,看是否能连的上? 如果连不上,确认一下: 1、sql server是否设置成允许远程连接 2、sql server服务器的防火墙是否开着(如果开着,关掉)
江南小鱼 2014-11-10
  • 打赏
  • 举报
回复
你在另外一台机器上,用odbc连数据库,看是否能连的上? 如果连不上,确认一下: 1、sql server是否设置成运行远程连接 2、sql server服务器的防火墙是否开着(如果开着,关掉)
冷月孤峰 2014-11-10
  • 打赏
  • 举报
回复
1、首先确保连接字符串正确 2、设置sql服务器允许远程访问
lzw_0736 2014-11-10
  • 打赏
  • 举报
回复
SQL配置允许远程访问

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧