System.Diagnostics.Process pro = new System.Diagnostics.Process();

pro.StartInfo.FileName = "cmd.exe";

pro.StartInfo.UseShellExecute = false;

pro.StartInfo.RedirectStandardInput = true;

pro.StartInfo.RedirectStandardOutput = true;

pro.StartInfo.CreateNoWindow = true;

pro.Start();

//pro.StandardInput.WriteLine("net use \\\\202.149.225.121\\ipc$ \"AISchina_Admin\" /user:\"administrator\"");

//pro.StandardInput.WriteLine("cd D:\\程序\\");

//pro.StandardInput.WriteLine("dir *.*");

//重点:下面写入批处理命令时,一定要在末尾换行加上exit,表示退出cmd窗口,

//同时sql脚本末尾也必须写上exit,表示退出sqlplus,否则程序会一直等待cmd结束,假死。

string cmd = string.Format(@"sqlplus {0}/ndp@ndp @{1}

exit", AisLogical.dbuser, tb_sqlpath.Text);

pro.StandardInput.WriteLine(cmd);

// 截取输出流

StreamReader reader = pro.StandardOutput;

string line = reader.ReadLine();   // 每次读一行

while (!reader.EndOfStream)  // 不为空则读取

{

if(line!="")

tb_output.AppendText(line + Environment.NewLine);  // Environment .NewLine 换行

line = reader.ReadLine().Trim();

Application.DoEvents();

}

////

pro.WaitForExit();

pro.Close();

2016.1.23 通过cmd在程序中执行sql脚本的更多相关文章

  1. .net(C#)在Access数据库中执行sql脚本

    自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...

  2. InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法

    简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...

  3. Eclipse中执行sql脚本文件

    转自:https://blog.csdn.net/weixin_37778823/article/details/79614281 在Eclipse中导入或新建sql脚本文件(.sql文件),选择指定 ...

  4. navicat 中执行sql脚本 喊中文错误

    执行内容和上篇一样,只是换了工具. 执行成功,但是数据库对应中文没有内容. sql脚本的编码是asci 执行的时候选择gbk 编码

  5. shell脚本中执行sql脚本并传递参数(mysql为例)

    1.mysql脚本文件 t.sql insert into test.t values(@name,@age); exit 2.shell脚本文件 a.sh  (为方便演示,与t.sql文件放在同一目 ...

  6. shell脚本中执行sql脚本(mysql为例)

    1.sql脚本(t.sql) insert into test.t value ("LH",88); 2.shell脚本(a.sh     为方便说明,a.sh与t.sql在同一目 ...

  7. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  8. linux C程序中获取shell脚本输出(如获取system命令输出)

    转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...

  9. 在Web应用程序中执行计划任务(多线程)

    在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等,我们称之为计划任务.实现计划任务的方法也有很多,可以采用SQ ...

随机推荐

  1. Educational Codeforces Round 15 D. Road to Post Office 数学

    D. Road to Post Office time limit per test 1 second memory limit per test 256 megabytes input standa ...

  2. Python staticmethod

    1 @staticmethod 静态方法 when this method is called, we don't pass an instance of the class to it (as we ...

  3. PHP error_get_last() 函数

    error_get_last() 函数返回最后发生的错误 返回了一个关联数组,描述了最后错误的信息,以该错误的 "type". "message"." ...

  4. 理解WCF(第一部分,有參考他人)

    依舊不廢話  上乾貨! 1.什么是WCF? WCF全名是:WindowsCommunication Foundation ,是一个运行库和一组 API,用于创建在服务与客户端之间发送消息的系统.它使用 ...

  5. fatal: Could not read from remote repository.

    fatal: Could not read from remote repository. Please make sure you have the correct access rightsand ...

  6. jdbc connection为什么放在webINF的lib里面

    jdbc connection为什么放在webINF的lib里面

  7. 畅通工程(kruskal算法)

    个人心得:日了狗,WR了俩个小时才发现是少了个vector清理,我也是醉了,不过后面还是对这个有了更好得了解,一是我得算法,而是学长改进 后的算法,改进后得算法还要判断所有村庄是否在连在一起,其实我觉 ...

  8. Codeforces 786C. Till I Collapse 主席树

    题目大意: 给定一个长度为\(n\)的序列,要求将其划分为最少的若干段使得每段中不同的数字的种数不超过\(k\). 对于 \(k = 1 .. n\)输出所有的答案. \(n \leq 10^5\) ...

  9. Oracle存储过程创建及调用

    在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器.在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的.相对来说,数据库系统中的触发器也是一种存储 ...

  10. htc使用方式(转)

    一.htc的两种使用方式: 关联行为(Attach Behavior): IE 5.0以上支持, htc 技术出现的初衷. 主要目的是把对象复杂的样式变化包装起来,替代 javascript + cs ...