5

タイトルはほとんどそれをすべて言います。SqlConnectionを作成してから、データベースを開かずにその接続を確認したいのですが、その時点では、どこに接続するのかまだわかりません。それは可能ですか?SqlConnectionクラスには、Databaseプロパティで設定したデータベースを開こうとする「Open」メンバーがあります。設定しなかった場合、SqlServerはマスターデータベースで試行します。接続しようとしているユーザー(MACHINE \ ASPNET)は、マスターデータベースではなく、一部のデータベース(まだわかりません)にアクセスできます。

よろしく、セバ

4

5 に答える 5

10

一時データベースに接続します。誰でも tempdb にアクセスできるため、アクセスのために自分自身を認証できます。後で実際のデータベースがわかったら、このプロパティを変更して、必要なデータベースに接続できます。

于 2008-09-30T21:09:04.420 に答える
2

これがあなたに必要なものかどうかはわかりません。

ユーザーがSQLServer2005のデータベースにアクセスできるかどうかを確認します

SELECT HAS_DBACCESS('Northwind');

HAS_DBACCESSは、ユーザーが指定されたデータベース(BOL)にアクセスできるかどうかに関する情報を返します。

現在のユーザーがアクセスできるすべてのデータベースを検索します

SELECT [Name] as DatabaseName from master.dbo.sysdatabases
WHERE ISNULL(HAS_DBACCESS ([Name]),0)=1
ORDER BY [Name]
于 2008-09-30T19:19:44.853 に答える
1

サービスがアクティブかどうかだけを知る必要がある場合は、ソケット経由でポートに接続して、ポートが開いているかどうかを確認できます。

于 2008-09-30T21:25:35.020 に答える
0

ちょっと興味があります...接続する必要がある正確なデータベースがわからない場合、どのような情報を確認できますか? 接続性やセキュリティなど、「実際の」データベースで問題が発生する可能性がある多くのことは、この種のテスト接続ではテストできません。

于 2008-09-30T19:13:05.993 に答える
-1

あなたがあなたの答えを得たかどうかはわかりませんが、私たち全員がここで答えを探しているので、これがあなたが探していたものであることを願っています

dim con as new sqlconnection
con.connectionstring="<<put your conn string here>>"
'try...catch block fires exception if the con is not successfully opened
try
con.open()
catch ex as exception
msgbox ex.message
end try
于 2011-11-26T03:58:13.970 に答える