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 的值?
创建一个参数类,如下所示:
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);
}