Облегчение ответа Джо.
declare @t1 table (col1 varchar(5))
insert @t1
select 'A' UNION
select 'B' UNION
select 'C'
declare @t2 table (col2 varchar(5))
insert @t2
select '1' UNION
select '2' UNION
select '3'
;with cteAllColumns as (
select col1 as col
from @t1
union
select col2 as col
from @t2
)
select c1.col, c2.col
from cteAllColumns c1
cross join cteAllColumns c2
where c1.col < c2.col
order by c1.col, c2.col
. Проверьте свои комбинации. Кол-во (Кол-во строк) ]
Этот код показывает, что простая проверка реестра выполнит свою работу.
Вот код, преобразованный в C # (и немного улучшенный для использования с использованием
using Microsoft.Win32;
// Check whether Microsoft Word is installed on this computer,
// by searching the HKEY_CLASSES_ROOT\Word.Application key.
using (var regWord = Registry.ClassesRoot.OpenSubKey("Word.Application"))
{
if (regWord == null)
{
Console.WriteLine("Microsoft Word is not installed");
}
else
{
Console.WriteLine("Microsoft Word is installed");
}
}
Обратите внимание, что этого недостаточно для проверки C: \ Program Files \ Microsoft Office \
на наличие EXE-файла msword
, поскольку пользователь мог установить его где-то еще .
Одно из решений, думаю, должно быть лучше, если вы его погуглите. Чтобы проверить, установлен ли Excel или нет, я использую этот код C #
Excel.Application app = new Excel.ApplicationClass();
if app == null
, это означает, что Excel не установлен на машине. Если вы проверите документы MSDN, вы сможете получить синтаксис для открытия слова appln.