Выполнение скрипта PowerShell из C # wpf - PullRequest
0 голосов
/ 30 мая 2018

У меня есть сценарий PowerShell, который выполняет файл SQL (который содержит команды для экспорта данных из файла XML в таблицу базы данных SQL Server) в сценарии PowerShell:

Function Export-Data
{
    $srvrInst = $env:COMPUTERNAME;
    $db = "DataModel.PAModel";
    $apc = "C:\DCT\SQL\AccountingPeriodCases.sql";
    Invoke-Sqlcmd -InputFile $apc -ServerInstance $srvrInst -Database $db;
}
Export-Data;

У меня есть требование вызоваэтот файл Smpl.ps1 из кода WPF-C #.То есть, когда флажок, соответствующий экспорту данных, установлен, то этот Smpl.ps1 должен быть вызван и выполнен.

Итак, у меня есть фрагмент кода C #:

 int DataBox_Execute()
        {
            Runspace rs = RunspaceFactory.CreateRunspace();
            rs.ThreadOptions = PSThreadOptions.UseCurrentThread;
            rs.Open();

            int k = 0;

            PowerShell ps = PowerShell.Create();

            if (DataBox.IsChecked ?? true)
            {
                ps.Runspace = rs;
                ps.AddScript(@"C:\DCT\LogCapture\Smpl.ps1").Invoke();
                k = 1;
            }
            rs.Close();
            return k;
        }

Но яне понимаю, почему это не выполняется.Когда я возвращаюсь и проверяю базу данных сервера SQL, таблица, в которой должны были быть данные, остается пустой.

Я уверен, что скрипт работает нормально, потому что когда я пытаюсь выполнить скрипт только через PowerShellзатем таблица базы данных SQL кажется заполненной экспортированными значениями из файла xml, так как я хотел, чтобы он работал.

, поэтому я хотел бы знать, если что-то не так с программной частью в WPF-C #.Кто-нибудь может помочь ребятам?

1 Ответ

0 голосов
/ 31 мая 2018

Прочитайте комментарии и проверьте:

https://msdn.microsoft.com/en-us/library/dn614674(v=vs.85).aspx

Проверьте, включено ли логическое значение для пути AddScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...