关于c#程序在别的电脑上运行的有关问题
关于c#程序在别的电脑上运行的问题
我写来一个c#的程序,其中用到了数据库的访问.打包后在别的电脑上运行,总是无法访问数据库。本地可以通过访问ip的形式,进行数据库访问。希望有人可以提供一下经验。
------解决思路----------------------
你做一个界面,在客户端连接不上的时候可以随时配置,把连接保存在配置文件里面,
------解决思路----------------------
1、你先搞清楚,客户端能不能连数据库服务器。拿odbc试下,实在不行,你在客户端装一个sql server,看能够通过ip访问数据库服务器不能。数据库访问的接口,都是.net framework封装好的,只要客户端安装的framework框架,都是可以访问数据库的,你打包不涉及打不打访问数据库的东东。
你可以写一个简单的访问程序,就做一件事事情,执行select * from username,查询你数据库的某张表,看能否访问。
2、打包的工具,很多
visual studio本身可以打包,另外可以使用nsis、installshield等
我写来一个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("请将信息输入完整。");
}
}
------解决思路----------------------
1、你先搞清楚,客户端能不能连数据库服务器。拿odbc试下,实在不行,你在客户端装一个sql server,看能够通过ip访问数据库服务器不能。数据库访问的接口,都是.net framework封装好的,只要客户端安装的framework框架,都是可以访问数据库的,你打包不涉及打不打访问数据库的东东。
你可以写一个简单的访问程序,就做一件事事情,执行select * from username,查询你数据库的某张表,看能否访问。
2、打包的工具,很多
visual studio本身可以打包,另外可以使用nsis、installshield等