C#调用EXE怎么连接不了数据库

pwg_peng 2015-09-10 11:46:50
各位大仙:
双击EXE中能正确连接远程或本地数据库,并读取数据。但我在FORM中再调用该EXE,运行后怎么连不上数据库了(远程本地都不行),求解,查了很多帖子无果,请大仙指点。个人判断是否是调用和双击运行,EXE中有什么组件未运行,或者调整用时EXE改变了吗?
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwg_peng 2015-09-12
  • 打赏
  • 举报
回复
谢谢,问题已经解决,谢谢各位大仙。
pwg_peng 2015-09-11
  • 打赏
  • 举报
回复
用的是SQL2008 R2 采用绝对路径 用了两种方法: 一种是:Process myProcess = new Process(); string fileName = @"d://Demo.exe"; string para = @"你好!"; ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(fileName, para); myProcess.StartInfo = myProcessStartInfo; myProcess.Start(); Application.DoEvents(); while (!myProcess.HasExited) { myProcess.WaitForExit(); } int returnValue = myProcess.ExitCode; 第二种是: ShellExecute(IntPtr.Zero, "open", @"d://Demo.exe", "", "", ShowCommands.SW_SHOWNORMAL); 求解
devmiao 2015-09-11
  • 打赏
  • 举报
回复
什么数据库,access或者sqlite么?是不是相对路径的问题。 ProcessInfo指定下启动路径
於黾 2015-09-11
  • 打赏
  • 举报
回复
引用 6 楼 pwg_peng 的回复:
各位大仙: 如果这个问题是被调用EXE配置文件,所引起的,请明示我现在应该怎么配置,谢谢大仙。
如果是因为相对路径的原因,那么你把你的程序放进它的程序所在的目录里运行,相对路径就一致了,这样肯定是好使的. 如果必须放到别的地方,那么你需要被调用的程序的源码,看它里面是怎么读取配置文件的,把这个逻辑改掉,变成寻找绝对路径,或者用其他方式先获取exe所在的路径,再拼接绝对路径
pwg_peng 2015-09-11
  • 打赏
  • 举报
回复
各位大仙: 如果这个问题是被调用EXE配置文件,所引起的,请明示我现在应该怎么配置,谢谢大仙。
寂空冷 2015-09-11
  • 打赏
  • 举报
回复
你的配置文件在EXE程序所在目录?
於黾 2015-09-11
  • 打赏
  • 举报
回复
具体你可以这样测试: 用个label或messagebox显示数据库连接字符串,看到底是什么 目测是根本没获取到
於黾 2015-09-11
  • 打赏
  • 举报
回复
这跟你调用exe用相对路径还是绝对路径无关 而是跟你被调用的exe如何去取得自己的配置文件和dll有关 如果你被调用的exe使用相对路径去读取数据库连接字符串,那么你双击启动的时候,相对路径是exe所在的文件夹,而用外部程序调用的时候,相对路径和程序启动路径都是外部程序exe所在的文件夹

111,083

社区成员

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

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

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