En iyi yanıtlayıcılar
Bilgisayara Sql Yüklü mü Değil mi? Kontrol

Soru
-
Programı setup yaparken bilgisayara sql express'in yüklü olup olmadığını
string[] yuklusqller = (string[])Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Microsoft SQL Server").GetValue("InstalledInstances"); var yukluozellikler = (from s in yuklusqller where s.Contains("SQLEXPRESS") select s).FirstOrDefault(); if (yukluozellikler == null)
Koduyla kontrol etmeye çalışıyorum, tabi kodu internette buldum ancan LocalMachine/Sofware/Microsoft/Microsoft Sql Server klasörüne gelince InstalledInstances kısmında SQLEXPRESS i görebiliyorum, bilgisayarda sqlexpress kurulu ancak değer sürekli null dönüyor daha doğrusu
var yukluozellikler = (from s in yuklusqller where s.Contains("SQLEXPRESS") select s).FirstOrDefault();
şu kısımı işaretleyip değer boş olamaz gibi bir uyarı veriyor hata nerdedir? doğrusu nasıldır?
Registry'de LocalMachine/Sofware/Microsoft/Microsoft Sql Server klasörünü kontrol edip değer alabiliyorum ancak sql server silinse bile registryde bu klasör kaldığı için sağlıklı olan InstalledInstances kontrolü sanırım, yada daha düzgün çalışan farklı bir yöntem varsa kod paylaşmanız münkün mü?
___________
ayrıca şimdi regedit'in uninstall kısmına bakan bir kod yapısı daha buldum
bool yukluozellikler = false; string uninstallKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey)) { foreach (string skName in rk.GetSubKeyNames()) { using (RegistryKey sk = rk.OpenSubKey(skName)) { try { if (sk.GetValue("DisplayName").ToString() == "SQL Server 2017 Database Engine Services") { yukluozellikler = true; } } catch { } } } }
sql server 2017 express'in gerekli yerine bakınca regeditte displayname olarak SQL Server 2017 Database Engine Services olarak görünmekte, bilgisayarıma da yüklü ama hala false değeri dönmekte bana ??- Düzenleyen CsharpAcemisi 11 Mart 2020 Çarşamba 12:08 Başka bir yöntem denemesi daha
Yanıtlar
-
Buraya baktınız mı bilmiyorum.Ya da cmd açıp "SQLCMD -L" komutunu çalıştırıp çıktılara bakabilirsiniz.
NOT : Bence yazılımın bunu bilmesine gerek yok kurun gitsin.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 19 Mart 2020 Perşembe 23:18
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 1 Nisan 2020 Çarşamba 13:58
Tüm Yanıtlar
-
Şöyle birşey farkettim 32/64 bit kontrol ettiğimde 2 bilgisayarım var birine sql express yükleyip kaldırdım, diğerinde hala yüklü
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server içersinde yüklenip kaldırılanda bu klasörün altında SQLEXPRESS yok ama yüklü olanda var, sanırım bu klasörü kontrol etsem yeterli olur.
Sağlıklımıdır bu yöntem ?
-
-
Buraya baktınız mı bilmiyorum.Ya da cmd açıp "SQLCMD -L" komutunu çalıştırıp çıktılara bakabilirsiniz.
NOT : Bence yazılımın bunu bilmesine gerek yok kurun gitsin.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 19 Mart 2020 Perşembe 23:18
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 1 Nisan 2020 Çarşamba 13:58