设置项目创建数据库

时间:2018-09-18 10:43:43

标签: c# sql-server setup-project

我不确定,但是我认为我在某些权限上有问题...

我有这种方法:

  static void ExecuteCommand(string _Command)
    {
        System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + _Command);
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = false;
        //procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        procStartInfo.Verb = "runas";
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = procStartInfo;
        proc.Start();
        string result = proc.StandardOutput.ReadToEnd();
        proc.WaitForExit();
        MessageBox.Show(result);
    }

首先,我在台式机应用程序中执行了此代码,并且可以正常工作。

  string createDB = @"sqlcmd -S " + SQLINSTANCE + @" -Q ""CREATE DATABASE " + DBNAME + @"""";
  ExecuteCommand(createDB);

但是现在我试图通过自定义操作在安装项目中执行此错误:

  

数据库'master'中的CREATE DATABASE权限被拒绝。

如果我在cmd控制台中执行此字符串(具有和不具有管理员权限),它都可以正常运行...

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

尝试使用属性UserNamePassword而不是runas

var psi = new ProcessStartInfo();

psi.Domain = "domain";
psi.UserName = "username";
psi.Password = password;