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 シェルを利用して、提供されたファイルを起動します。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 に答える