Это кажется довольно тривиальным, но теперь это меня расстраивает.
Я использую C # с SQL Server 2005 Express.
Я использую следующий код.Я хочу проверить, существует ли база данных перед ее созданием.Однако возвращаемое целое число равно -1, и именно так MSDN определяет, что ExecuteNonQuery () также будет возвращать.Сейчас база данных существует, но она все еще возвращает -1.Сказав это, как я могу сделать эту работу, чтобы получить желаемый результат?
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 <= 0)
databaseExists = false;
else
databaseExists = true;
}
}
}
catch (Exception ex) { }
}