На самом деле использование оператора выбора для создания пары флагов могло бы быть лучшим решением:
select
...
, case when keyword like '%' + @input + '%' then 1 else 0 end as keywordmatch
, case when content like '%' + @input + '%' then 1 else 0 end as contentmatch
-- or whatever check you use for the matching
from
...
and here the rest of your usual matching query
...
order by keywordmatch desc, contentmatch desc
Снова, это - то, только если все соответствия ключевого слова занимают место выше, чем все соответствия только для содержания. Я также сделал предположение, что соответствие и в ключевом слове и в содержании является самым высоким разрядом.
Да, с использованием System.Diagnostics.FileVersionInfo .
string fileVersion = FileVersionInfo.GetVersionInfo(file).FileVersion;
string productVersion = FileVersionInfo.GetVersionInfo(file).ProductVersion;
Имейте в виду, что версия файла сборки может отличаться от версии сборки. Версия сборки является частью идентичности сборки.
Я не знаю о собственных библиотеках DLL, но с управляемыми DLL это работает следующим образом:
System.Reflection.Assembly.LoadFile(file).GetName().Version
РЕДАКТИРОВАТЬ: Я думаю, вы можете прочитать информацию о версии на C с помощью GetFileVersionInfo ()
...
FileVersionInfo fi = FileVersionInfo.GetVersionInfo(path);
string fileVersion = fi.FileVersion;
. В Windows «Версия файла» и «Версия продукта» совпадают (или, по крайней мере, для управляемый .dll).
Если вам нужна информация о версии файла, используйте класс FileVersionInfo
( документация FileVersionInfo )
Если вам нужна версия сборки, вы нужно загрузить эту сборку с помощью отражения. Вот пример того, как это сделать на code plex
В сборке есть три номера версии. Для получения информации о том, какие значения они принимают, кто их использует и как их читать, см. http://all-things-pure.blogspot.com/2009/09/assembly-version-file-version-product. html .