Проблема с выбором строк из MSI-файла - PullRequest
1 голос
/ 01 ноября 2019

Я написал инструмент конфигурации для простой настройки MSI-инсталляторов, которые я создаю с помощью проекта установки Visual Studio. Я успешно отредактировал записи в таблице InstallExecuteSequence. Теперь я хотел бы также что-то изменить в таблице Control, но запрос на выборку возвращает 0 записей.

using (Database db = new Database(path, DatabaseOpenMode.Transact))
{
    using (var vw = db.OpenView(db.Tables["Control"].SqlSelectString))
    {
        vw.Execute();

        Record record = vw.Fetch();    // <= this always returns null

        while (record != null)
        {
            record = vw.Fetch();

            if (record == null)
                break;

            if (record["Dialog_"].ToString().ToLower().Contains("CustomCheckA") && record["Control"].ToString().ToLower().Contains("Text"))
            {
                tbName.Text = record["Text"].ToString();
            }

            if (record["Dialog_"].ToString().ToLower().Contains("CustomCheckA") && record["Control"].ToString().ToLower().Contains("BodyText"))
            {
                tbDescription.Text = record["Text"].ToString();
            }
        }

        if (String.IsNullOrEmpty(eintrag.IDString))
            MessageBox.Show("This file does not contain the searched keywords");

       vw.Close();
   }

   db.Close();
}

1 Ответ

0 голосов
/ 01 ноября 2019

Полагаю, вам нужно добавить больше информации о желаемом результате, но я вижу кое-что здесь.

 if (record["Dialog_"].ToString().ToLower().Contains("CustomCheckA") 

Вы конвертируете его в более низкое значение и затем проверяете, содержит ли это слово, но словоне все строчные. Таким образом, результат всегда ложен.

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