标题几乎说明了一切。我想创建一个SqlConnection,然后检查该连接而不打开数据库,因为那时我还不知道我将连接到哪里。有可能吗? SqlConnection类有一个'Open'成员,它试图打开你在Database属性中设置的数据库,如果你没有设置它,SqlServer会尝试使用master db。问题是我正在尝试连接的用户(MACHINE \ ASPNET)可以访问某些数据库(我还不知道),而不是主数据库。

此致 西巴

有帮助吗?

解决方案

连接到临时数据库。每个人都加入了tempdb,因此您可以对自己进行身份验证以进行访问。稍后当您知道实际数据库时,可以更改此属性以连接到所需的数据库。

其他提示

我不确定这是否是你需要的。

检查如果用户有权访问Sql Server 2005中的数据库

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]

如果您只需知道服务是否处于活动状态,您可以尝试通过套接字连接到端口,以查看它是否已打开

好奇......如果您不知道需要连接的精确数据库,您将能够验证哪些信息?许多可能出现“真实”错误的事情数据库在这种测试连接中是不可测试的,例如连接或安全性。

我不知道你是否得到了答案,但我们都在这里寻找答案,我希望这就是你要找的东西

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top