Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 319
  • Last Modified:

how can i check sql server installation when my windows application start ??

i want to know that whether sql server 2008 is installed or not on local pc when my window application start ??

please refer the below link ..

http://stackoverflow.com/questions/1221503/detect-local-sql-server-installation-with-c32-bit-as-well-as-64-bit

how can i put above coding when my application start ??

e.g in Program.cs file ?
0
Parth48
Asked:
Parth48
  • 4
  • 4
1 Solution
 
Parth48Author Commented:
can i change in program.cs file ??
0
 
jimswebCommented:
I can see that the link you have provided above contians another link. It is :
http://stackoverflow.com/questions/1165576/c-how-to-get-sql-server-installation-path-programatically
It has the answer that you are looking for. :)
0
 
jimswebCommented:
Here is another easy tutorial that speaks about SQL server instance and installation. You can easily figure out the sam ein C# also.
http://stackoverflow.com/questions/2381055/check-if-sql-server-any-version-is-installed
0
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

 
Parth48Author Commented:
hi @jimsweb: u r right but can i put the below coding in program.cs file ??

      

using(RegistryKey sqlServerKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server"))
{
    foreach (string subKeyName in sqlServerKey.GetSubKeyNames())
    {
        if(subKeyName.StartsWith("MSSQL."))
        {
            using(RegistryKey instanceKey = sqlServerKey.OpenSubKey(subKeyName))
            {
                string instanceName = instanceKey.GetValue("").ToString();

                if (instanceName == "MSSQLSERVER")//say
                {
                    string path = instanceKey.OpenSubKey(@"Setup").GetValue("SQLBinRoot").ToString();
                    path = Path.Combine(path, "sqlserver.exe");
                    return path;
                }
            }
        }
    }
}

Open in new window


what can i do now ?

0
 
jimswebCommented:
Can you please try out the second one ..? It is working fine for me.
0
 
Parth48Author Commented:
ok @jimsweb: thanks ....
0
 
Parth48Author Commented:
but i can't find sql server version ??

is it work for sql server 2008 ??
0
 
jimswebCommented:
Console.WriteLine("Version:"+row["Version"]);

Open in new window


should write the version, i guess.
0
 
wls3Commented:
You can possibly try the WMI class Win32_Product.  It's not as straightforward, but, can be effective.  This is mainly a snippet to give you an idea of what you are looking at from a code perspective.  Obviously, you'd just use code like this to perform your check.   I did a simple ASP.NET 4.0 website.  This all goes in the .cs page.  Querying WMI can usually take a while, so, you might want to do this as some sort of application initialization routine.  Also, you will need to add ConnectionOptions) to the ManagementScope in order to work with machines other than the localhost.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Management.Instrumentation;
using System.Security;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class WMISearch : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string sServerPath = @"\\" + Environment.MachineName + @"\root\cimv2";

        //Create a ManagementScope object
        ManagementScope Scope = new ManagementScope(sServerPath);

        //Connect to the COM interface
        Scope.Connect();

        //Create a new ObjectQuery
        ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM Win32_Product WHERE (Name LIKE 'Microsoft SQL Server%')");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(objectQuery);
        foreach (ManagementObject SQLServerInfo in searcher.Get())
        {
            Response.Write("Name: \t\t" + SQLServerInfo["Name"] + "<br/>");
            Response.Write("Version: \t\t" + SQLServerInfo["Version"] + "<br/>");
            Response.Write("IdentifyingNumber: \t" + SQLServerInfo["IdentifyingNumber"] + "<br/><br/>");
        }
    }
}

Open in new window

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now