用c#中实现的,调用cmd来执行bcp的代码

news/2024/10/5 9:31:26 标签: cmd, c#, string, dataset, command, exception

c#中实现,调用cmd来执行bcp的代码,大家共享!
引用空间:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            string Conn = "data source=192.168.0.1;initial catalog=Test;user id=sa;password=1";
            SqlConnection sqlConn = new SqlConnection(Conn);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = sqlConn;
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sqlConn.Open();
            cmd.CommandText = "Select * from Files";
            DataSet ds = new DataSet();
            sda.Fill(ds);

            if(ds.Tables[0].Rows.Count>0)
            {
                string BcpExec = "";
                for(int i=0;i<ds.Tables[0].Rows.Count;i++)//循环取本地文件名
                {           
                    BcpExec = @"bcp Test..Data in D:/test/";
                    BcpExec += ds.Tables[0].Rows[i]["path"].ToString();
                    BcpExec += " -S192.168.0.1 -Usa -P1 -c -t,";//组合bcp命令
                    Response.Write(ExeCommand(BcpExec));//执行bcp命令并显示操作结果
                }
            }
        }


        /** <summary>
        /// 执行Cmd命令
        /// </summary>
        /// <param name="commandText"></param>
        /// <returns></returns>
        public static string ExeCommand(string commandText)
        {
            Process p = new Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;
            string strOutput = null;
            try
            {
                p.Start();
                p.StandardInput.WriteLine(commandText);
                p.StandardInput.WriteLine("exit");
                strOutput = p.StandardOutput.ReadToEnd();
                p.WaitForExit();
                p.Close();
            }
            catch(Exception e)
            {
                strOutput = e.Message;
            }
            return strOutput;
        }


C#中利用process类调用外部程序以及执行dos命令
c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序

加入参数 "/c " + 要执行的命令来执行一个dos命令
(/c代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe)

  1           private   string  RunCmd( string  command)
     
2           {
 
3             //實例一個Process類,啟動一個獨立進程
 4             Process p = new Process();
 
5 
 
6             //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:
 7 
 
8             p.StartInfo.FileName = "cmd.exe";           //設定程序名
 9             p.StartInfo.Arguments = "/c " + command;    //設定程式執行參數
10             p.StartInfo.UseShellExecute = false;        //關閉Shell的使用
11             p.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
12             p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
13             p.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
14             p.StartInfo.CreateNoWindow = true;          //設置不顯示窗口
15 
16             p.Start();   //啟動
17             
18             //p.StandardInput.WriteLine(command);       //也可以用這種方式輸入要執行的命令
19             //p.StandardInput.WriteLine("exit");        //不過要記得加上Exit要不然下一行程式執行的時候會當機
20             
21             return p.StandardOutput.ReadToEnd();        //從輸出流取得命令執行結果
22 
23         }

 

http://www.niftyadmin.cn/n/1148757.html

相关文章

react + redux 开发框架搭建 超详细

附上原文地址&#xff1a;原文地址 最近周末有时间&#xff0c;想把加入前端一来一年时间对于react以及redux的理解记录下来&#xff0c;没有什么比一个产品更有说服力&#xff0c;在这里搭建一个简单的框架&#xff0c;供刚加入前端准备学习react的小白作为入门学习。 希望阅读…

linux关闭防火墙了,但端口还是访问不了

今天部署kafka的时候遇到一件难受的事&#xff0c;本地已经起了&#xff0c;但是其他服务死活连不上。 已经把防火墙关了 systemctl stop firewalld查看状态&#xff1a; systemctl status firewalld也是关闭的&#xff0c;但就是没啥用。 头发都要挠掉了&#xff0c;还没搞…

史玉柱:今年推奥运游戏

北京时间2月21日&#xff0c;巨人公司公布了2007年公司业绩。巨人网络董事长兼首席执行官史玉柱称&#xff0c;“2007年对巨人来说是成功的一年&#xff0c;在纽交所上市&#xff0c;收入和净利润都得到强劲增长&#xff0c;且保持着行业领先的利润率。”史玉柱对此解释说&…

微信公众号开发---本地环境的搭建(申请测试账号和内网穿透)

最近公司有个需求关于公众号的&#xff0c;正好梳理一下吧。 搭建环境 申请公众号测试账号 当然你也注册一个公众号&#xff0c;是一样的 测试号的申请地址 直接扫码注册就行了&#xff0c;注册号好后页面如下&#xff1a; 这样就好了&#xff0c;这个测试号可以体验众多的服…

VisualVM:多合一故障处理工具

2019独角兽企业重金招聘Python工程师标准>>> VisualVM&#xff08;All-in-One Java Troubleshooting Tool&#xff09;是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序&#xff0c;并且可以遇见在未来一段时间内都是官方主力发展的虚拟机故障处理工具。…

重构(Refactoring)技巧读书笔记 之一

转自:http://www.cnblogs.com/rickie/archive/2004/09/25/46577.html本文简要整理重构方法的读书笔记及个人在做Code Review过程中&#xff0c;对程序代码常用的一些重构策略。通过适当的重构代码&#xff0c;的确可以显著提高代码的质量&#xff0c;令人赏心悦目。毫无疑问&am…

注解@CrossOrigin解决跨域问题

分享一篇文章关于跨域的解决办法&#xff0c;原文地址&#xff1a;https://www.mmzsblog.cn/articles/2019/08/23/1566526598886.html 阅读目录&#xff1a; 目录 注解CrossOrigin 一、跨域(CORS)支持&#xff1a; 二、使用方法&#xff1a; 1、controller配置CORS 2、全局CO…

Android适配: 拉伸适配的缺点

近来出了很多关于Android适配的文章和第三方库&#xff0c;可以说已经是一波潮流了&#xff0c;甚至上了Github Trending&#xff1b;它们的原理都是一样的&#xff0c;即来自于今日头条的技术分享&#xff1a; 一种极低成本的Android屏幕适配方式。更深入一点&#xff0c;其本…