VB.net 在 SQL 中存储变量名称以用于进程启动参数

本文关键字:用于 进程 启动 参数 变量名 net SQL 存储 VB | 更新日期: 2023-09-27 17:56:25

我正在使用脚本和应用程序启动器构建诊断工具,我在 .net 3.5 中执行此操作。我们可能很快就能使用.net 4,但由于Windows xp,没有超过这个数字!

菜单是从sql表填充的,链接到这些应用程序。

其中一些应用程序是脚本,需要参数才能运行,我不希望人们必须键入任何内容,并且应用程序将这些参数属性(如用户和主机名)存储为诊断工具的一部分。如果此脚本所需的参数作为字符串存储在 sql 上,我如何将其转换为变量值?

例如:

Public strHostname As String = "pc1" 'global variable set by computer
strArguments = "/c /v:strHostname /wait" 'pulled from sql

在为 process.start 构建参数字符串时,我想从我的公共变量中切换带有"pc1"的 strHostname。

显然,这最好通过标准字符串查找和替换来完成,但我实际上有数百个变量,并且不希望构造这么大的 case 语句。

有没有其他方法可以获取字符串"strHostname"并使用它来查找公共 strHostname 的值?

VB.net 在 SQL 中存储变量名称以用于进程启动参数

创建一个参数类,如下所示:

class Parameter
{
    public string Name { get; set; }
    public string Value { get; set; }
}

在数据库上,您有一个带有"名称"和"值"列的参数表(SQL Server 中的 nvarchar),该表填充如下(我只显示第一行):

Name           Value
%HostName      pc1

我在参数名称前面加上"%",以便在参数字符串中轻松找到它。

将数据库中的参数表读取到例如参数数组/列表中,然后使用参数替换参数中的所有参数:

string arguments = "/c /v:%HostName /wait";
foreach (Parameter parameter in Parameters)
{
    arguments = arguments.Replace(parameter.Name, parameter.Value);
}