如何执行批处理文件?

时间:2013-04-10 19:21:04

标签: c# oracle

我刚刚编写了我的第一个C#代码!我按照此示例创建了来自Oracle的数据:

这是我目前的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
using Oracle.DataAccess.Types;

namespace OraTrigger
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string oradb = "Data Source=server;User Id=user;Password=pass;";
            OracleConnection conn = new OracleConnection(oradb); // C#
            conn.Open();

            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT cast(count(D_DTM) AS varchar(20)) as trig FROM DMSN.DS3R_FH_1XRTT_BTS_LVL_KPI"; 
            cmd.CommandType = CommandType.Text;

            OracleDataReader dr = cmd.ExecuteReader();
            dr.Read();
            label1.Text = dr.GetString(0);

            conn.Dispose();
        }
    }
}

如果计数是>如何执行批处理文件? 0?我试着关注this。 但是一个愚蠢的问题是,bat文件的位置在哪里?

2 个答案:

答案 0 :(得分:0)

你可以这样做:

var startInfo = new ProcessStartInfo("{full path to .bat file");
Process.Start(startInfo);

这将执行批处理文件,就像在Windows中双击它一样。现在,可行的原因是因为UseShellExecute类默认情况下属性true设置为ProcessStartInfo。因此,它实际上将利用Windows shell启动您提供的文件。

另一种选择就是像这样发出Start

Process.Start("{full path to .bat file");

但是此解决方案的问题是您没有设置将任何参数或开关发送到应用程序,因为您没有使用ProcessStartInfo,但它可能适合您。


因此,完整代码可能如下所示:

int cnt;
if (int.TryParse(label1.Text, out cnt))
{
    if (cnt > 0)
    {
        var startInfo = new ProcessStartInfo("{full path to .bat file");
        Process.Start(startInfo);
    }
}

答案 1 :(得分:0)

使用Process.Start()

请参阅以下内容:

http://www.dotnetperls.com/process-start