在以后的代码中使用命令行变量

时间:2012-08-20 15:29:19

标签: c# variables adodb

我有一个WinForm,

我已经添加了命令行函数 -

foreach (string arg in args)
        {

            if (arg == "-id")
            {
                string u = "";

                ADODB.Connection ADconn = new ADODB.Connection();
                string connstr = "db connection string";

                ADconn.ConnectionString = connstr;

                object recs;

                ADODB.Recordset rs = new ADODB.Recordset();

                ADconn.Open(connstr);

                string qry = string.Format("Select ID from TABLE where NO = '" + args[counts + 1] + "'");

                rs = ADconn.Execute(qry, out recs, 0);

                for (; !rs.EOF; rs.MoveNext())
                {
                    string test = rs.Fields["column"].Value.ToString();

                    u = test;

                }

            }

            counts = counts + 1;
        }

因此args[counts + 1]是用户在-id之后在命令行中输入的任何变量。我需要稍后在我的代码中使用此值但是我该怎么做?

2 个答案:

答案 0 :(得分:1)

一种选择是创建一个具有静态属性的类,该类封装命令行参数,例如

public class RunConfiguration
{
    public static int Id { get; set; }
}

初始化 main()例程中的值。然后,您可以在程序中的任何位置引用它们,例如

int id = RunConfiguration.Id;

答案 1 :(得分:1)

使用Environment.GetCommandLineArgs从程序中的任何位置访问命令行参数,而不仅仅是main方法。 (它可以防止你需要在任何地方传递它们。)