2010-07-29 87 views
0

前段时间,我编写了一个基于Web的留言簿应用程序,该应用程序编写了自己的数据库。获取SQL Server的本地实例而不是命名实例

我的代码是很业余,但是,因为这是我的第一个出版,我感到非常高兴。 我发布后大约一个月,我意识到我在代码中犯了一个大错。

我永远只能连接到SQL Server的特定命名实例,它发生,我认为,如果SQL Server实例具有比我指定一个不同的名称,这是行不通的。因此,由于我的用户可能不知道正在运行的SQL Server实例的名称是什么,我想添加一个字段,用户可以指定它,如果他们这样做会有所帮助,但如果他们不这样做? 我的答案是获取本地实例,无论名称如何。

我试过Data Source=.\local;Data Source=.;和其他变体,但是毫无效果。

任何想法?

回答

0

非命名实例被称为“默认实例”,可以使用"Data Source=(local);..."访问。

+0

我不认为我试过一个,谢谢:)唯一的问题是我得到'无法打开到SQL Server'连接 – 2010-07-29 10:15:30

0

知道运行哪些实例的唯一方法是查询SQL浏览器服务,如果它正在运行。 我猜你的大部分用户正在运行SQL Server Express?如果是这样,该服务称为本地\ SQLEXPRESS。如果不是,它是本地的或他们自己命名它。所以,我会先尝试本地\ SQLEXPRESS,然后尝试本地。如果没有工作,只需抛出异常并要求用户自行添加。

+0

最大的问题是,我永远不可能知道自己的系统什么(什么版本他们正在运行的SQL Server包括在内)。 正如我所说的,我想为用户添加一个字段来键入他/她的SQL Server实例的名称,但是如果他们不知道它的名字会怎么样? – 2010-07-29 12:19:02

+0

如果用户不知道它是SQLExpress还是默认的。至少在99.9%的情况下:-) – 2010-07-29 13:02:43