入門
あなたはデータを削除すると、「データベースが現在使用中であるため、」プロジェクトでは、「DROPデータベース[データベース名]を」SQLステートメントを使用して、それがXXXX「データベースを削除することができません」というエラーメッセージが表示されている、でSqlSeverデータベースクライアントをテストし、 SQL文の実行を指示し、適切に実行することができますが、OLEDBを介してSQL文を実行し、上記のエラーに関連する文書への著者のアクセスが登場、この問題に対する解決策を見つけました。
ソリューション
ライブラリは、シングルユーザーモードでデータベースを削除するように設定し、設定はすぐに次のように特定のSQL文があるロールバックされます。
ROLLBACK IMMEDIATE DROPデータベース[データベース名]でデータベース[データベース名]のSET SINGLE_USERをALTER [マスター]を使用
次のようにパッケージングは、データベースを削除します。
パブリック 静的 ブール DeleteSqlServerDB(文字列 serverCon、ストリングDBNAME) { BOOL bSuccess = 偽。 試す { 使用(SqlConnectionのconMaster = 新しいSqlConnectionオブジェクト(serverCon)) { conMaster.Open()。 文字列 strExist = @ " の'name = dbo.sysdatabases SELECT * FROM " + DBNAME + " @ ' " ; SqlCommandオブジェクトcmdExist = 新しいですSqlCommandオブジェクト(strExist、conMaster)。 SqlDataReaderのreaderExist = cmdExist.ExecuteReader()。 BOOL bExist = readerExist.HasRows。 readerExist.Close(); もし(bExist) { VARの CMDは= 新しいSqlCommandオブジェクト( $ " [マスター] [{DBNAME}] ROLLBACK IMMEDIATE DROPデータベースとデータベース[{DBNAME}]のSET SINGLE_USERをALTER USE " 、 conMaster)を、 cmd.ExecuteNonQuery(); } conMaster.Close()。 } bSuccess = 真。 } キャッチ(例外e) { bSuccess = 偽。 } 戻りbSuccess。 }
注意:SqlCommandオブジェクトは、各スペースに直接、SQL文をSQL文の数を実行したりすることができます;分離すること「」。
概要
データベース操作の過程で、私たちは奇妙なエラー、継続的な学習が発生し、まとめます私たちは次のステージを入力するための唯一の方法です!あなたにこの記事は参考になりました場合は、次の注意をサポートしてください!