title: Check if Database Exists Before Creating
body: <p>This seems pretty trivial, but it is now frustrating me.</p>
  
  <p>I am using C# with SQL Server 2005 Express.</p>
  
  <p>I am using the following code. I want to check if a database exists before creating it. However, the integer returned is -1 and this is how MSDN defines what ExecuteNonQuery() will return as well. Right now, the database does exist but it still returns -1. Having said that, how can I make this work to get the desired result?</p>
  
  <pre><code>private static void checkInventoryDatabaseExists(ref SqlConnection tmpConn, ref bool databaseExists)
  {
      string sqlCreateDBQuery;
      try
      {
          tmpConn = new SqlConnection("server=(local)\\SQLEXPRESS;Trusted_Connection=yes");
  
          sqlCreateDBQuery = "SELECT * FROM master.dbo.sysdatabases where name = 
          \'INVENTORY\'";
  
          using (tmpConn)
          {
              tmpConn.Open();
              tmpConn.ChangeDatabase("master");
  
              using (SqlCommand sqlCmd = new SqlCommand(sqlCreateDBQuery, tmpConn))
              {
                  int exists = sqlCmd.ExecuteNonQuery();
  
                  if (exists &lt;= 0)
                      databaseExists = false;
                  else
                      databaseExists = true;
              }
          }
      }
      catch (Exception ex) { }
  
  }
  </code></pre>