用process导入dmp文件
用sqlProcess = new Process();
  sqlProcess.StartInfo.FileName = "imp.exe";
  sqlProcess.StartInfo.Arguments = string.Format(" {0}/{1}@{2} FILE={3} FROMUSER={4} TOUSER={5}",
  sqlProcess.StartInfo.CreateNoWindow = true;
  sqlProcess.StartInfo.UseShellExecute = false;
  sqlProcess.StartInfo.RedirectStandardOutput = true;
  sqlProcess.Start();
  TextBox1.Text=sqlProcess.BeginOutputReadLine();
...
怎么没有输出显示?我怎么知道导出出错呢
请各位指点

解决方案 »

  1.   

    指定log选项,比如log=c:\explog.log
    然后到explog里面去查看
      

  2.   

    如果用到 sqlProcess.OutputDataReceived += new DataReceivedEventHandler(sqlProcess_OutputDataReceived);
    在sqlProcess_OutputDataReceived 显示控制台导入即时信息就没法了哇?
    用Process 操作sql文件就可以显出来 不知道怎么导dmp文件就显不出来。脑壳痛
      

  3.   

    可能是机制不一样吧,一个是sqlplus的命令,一个是imp命令,两个操作的环境都不一样。具体的我也没遇到过。你就让他们去看日志得了被。。
      

  4.   

    ****. RedirectStandardError = true;
    Error也是输出。也得捕获。
      

  5.   

    算了,写一个简单的吧:
    using System;
    using System.Collections.Generic;
    using System.Text;using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.IO;
    namespace demo0
    {
        class main
        {
            static void TestImp()
            {
                Process sqlProcess = new Process();
                sqlProcess.StartInfo.FileName = @"D:\Oracle\product\11.2.0\db1\BIN\imp.exe";
                sqlProcess.StartInfo.Arguments = string.Format("{0}/{1}@{2} FILE={3} FROMUSER={4} TOUSER={5}",
                    "scott", "tiger", "ora102", "mock.dmp", "scott", "scott");
                sqlProcess.StartInfo.CreateNoWindow = true;
                sqlProcess.StartInfo.UseShellExecute = false;
                sqlProcess.StartInfo.RedirectStandardOutput = true;
                sqlProcess.StartInfo.RedirectStandardError = true;
                sqlProcess.Start();
                StreamReader sr = sqlProcess.StandardOutput;
                StreamReader sr2 = sqlProcess.StandardError;            System.Console.WriteLine(sr.ReadToEnd());
                System.Console.WriteLine(sr2.ReadToEnd());
            }        static void Main(string[] args)
            {
                TestImp();
            }
        }
    }输出如下:
    Import: Release 11.2.0.1.0 - Production on Mon Dec 20 11:35:06 2010Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    IMP-00058:
    IMP-00000: Import terminated unsuccessfully
      

  6.   

    to linxixiangxin:
    可以试一试我在楼上的一小段程序,应该有效。
      

  7.   

    嗯 刚试了 不管是导入成功还是失败 豆能且只能从StandardError中获取信息
    导入dmp文件 用StandardOutput始终无输出
    真是奇了个怪了
    但是也能解决我的问题了 哈哈
    非常感谢 楼上两位
    特别是iihero同学 你们是好人 ohohoh
    考试去了  等下回来