c#调用command.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C# 操作 Oracle小结 这几天打算做一个c#安装部署项目,附带要还原Oracle数据库,之前的想法是想在Web服务器上能够自动还原Oracle数据库(不管Web服务器是否已安装Oracle客户端或服务端),后来经过验证此法是行不通的,不过SqlServer就可以,它是可以调用Interop.SQLDMO.dll组件,但是Oracle的话需要调用SqlPlus或imp、Exp等工具,这样的话必须要安装Oracle,后来在网上找了几种Oracle免安装方式,有些是可以直接连Oracle服务器了,但是没imp、exp等工具,后来好不容易找了一个有imp、exp工具的,可以将数据导出来,但是我试了一下午导入(用自己开发的一个导入程序),结果试了一下午就是不行。表现出来的效果好像是死锁了,但是后来我直接用command命令一试,结果表明是我的免安装的Oracle环境问题。 ? 无奈我想只能调整一下我的方案,在web服务器上安装时让用户自己选择安装项目(选安装网站),在数据库服务器选“安装数据库”。 ? 今天主要实验的是用C#调用command命令行来执行Oracle的导入或执行Oracle 的 Sql操作: 如果想获取标准输出流或错误输出流时,在执行WaitForExit()方法时可能会导致死锁情况的发生,可以有几种方式 1. 异步读取流。 2.使用两个线程分别读取标准输出流和错误输出流。 ? 1.异步读流: ????? private void Imp1() ??????? { ??????????? string user; ??????????? string paw; ??????????? string server; ??????????? string excute, path; ??????????? try ??????????? { ??????????????? user = txtUser.Text; ??????????????? paw = txtPwd.Text; server = txtServer.Text; path = txtPath.Text; ?????????????? ??????????????? excute = imp + + user + / + paw + @ + server + bufferfull=y + file = + path + log=imp.txt; ??????????????? //excute = sqlplus + + user + / + paw + @ + server + @createUser.sql; ??????????????? ProcessStartInfo pi = new ProcessStartInfo(); ??????????????? pi.FileName = Imput.bat; ??????????????? pi.UseShellExecute = false; ??????????????? pi.RedirectStandardOutput = false; ??????????????? pi.RedirectStandardError = true; ??????????????? pi.RedirectStandardInput = false; ??????????????? pi.CreateNoWindow = true; ??????????????? pi.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; ??????????????? Process p = new Process(); ??????????????? p.StartInfo = pi; ??????????????? p.Start(); ??????????????? p.BeginErrorReadLine();//异步读取 ??????????????? p.WaitForExit();//等待程序执行完退出进程 ????????????????p.Close();//关闭进程 ???????????????? ???????????????MessageBox.Show(导入成功, 提示信息); ??????????? } ??????????? catch (Exception ex) ??????????? { ??????????????? MessageBox.Show(ex.Message, 提示信息); ??????????? } ??????? } ???????? ? ---------

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档