-3

我有一个 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. 我需要稍后在我的代码中使用这个值但是我该怎么做呢?

4

2 回答 2

1

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

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

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

int id = RunConfiguration.Id;
于 2012-08-20T15:32:45.043 回答
1

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

于 2012-08-20T15:33:21.733 回答