이것은 매우 사소한 것처럼 보이지만 지금은 절망적입니다.만들기 전에 데이터베이스가 있는지 확인하십시오.
SQL Server 2005 Express에서 C#을 사용하고 있습니다.
다음 코드를 사용하고 있습니다. 데이터베이스를 만들기 전에 데이터베이스가 있는지 확인하고 싶습니다. 그러나 반환 된 정수는 -1이며 ExecuteNonQuery()가 반환 할 내용을 MSDN에서 정의하는 방식입니다. 지금 당장 데이터베이스는 존재하지만 여전히 -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) { }
}
시도해보십시오 .. 실행 전에 executeCalar가 객체를 반환하므로 할당 전에 캐스팅해야합니다. –
"잘못된 열 이름 'INVENTORY'"INVENTORY ' " –
예외가 throw됩니다. 죄송합니다, 예 - 데이터베이스 이름을 작은 따옴표로 - –