0

我刚刚编写了我的第一个 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,我如何执行批处理文件?我试图遵循这个。但是一个愚蠢的问题是,bat文件的位置在哪里?

4

2 回答 2

0

你可以简单地这样做:

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

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

另一种选择是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);
    }
}
于 2013-04-10T19:26:52.650 回答
0

使用 Process.Start()

请参阅以下内容:

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

于 2013-04-10T19:28:02.360 回答