【发布时间】:2013-04-02 22:48:44
【问题描述】:
我对 C# 非常陌生,并且对除 SQL 之外的任何东西都进行了编程。我已经在表单和按钮单击上发生了以下代码。如果我只想让它在 open 上运行,我会怎么做?如您所知,我对 C# 非常陌生(今天才开始学习它,但它非常令人兴奋!)
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=OMP1;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(*) as varchar(20)) as trig FROM ZDMSN.TRIGGER_TEST";
//cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
int cnt;
if (int.TryParse(dr.GetString(0), out cnt))
{
if (cnt > 0)
{
System.Diagnostics.Process.Start(@"C:\testfile.bat");
}
}
cmd.CommandText = "TRUNCATE TABLE ZDMSN.TRIGGER_TEST";
conn.Dispose();
}
}
}
【问题讨论】:
-
什么是'run on open'?
-
是否需要在表单窗口中?您可以使用命令行项目轻松完成此操作。
-
不,我只是在窗体窗口中完成的,因为在线示例是从这些开始的。我想用 Windows 任务调度程序安排这个,每 30 分钟运行一次......命令行项目是否适合这个?
-
是的 - 我建议创建一个新的 C# 命令行项目,然后将上面的代码复制到其中。您不需要所有的
using包;大概System.Drawing和System.Windows.Forms和System.Threading.Tasks可以去。尝试一次删除一个,然后进行构建。如果您遇到构建错误,只需放回您刚刚删除的using。或者你可以把它们留在那里——我很确定它们是无害的(除了可能会误导)。 -
在创建命令行/控制台项目时,只需复制
button1_Click方法中的代码即可。