2013-04-12 134 views
1

我继承含有设置为数据源的连接字符串的ASP.NET项目:SQL Server 2008中的连接字符串帮助必

"Data Source=.\\\sql2008" 

我以前没见过这种类型的东西。任何人都可以解释什么.\\\意味着什么?另外,零件设置为sql2008的正确技术术语是什么?

非常感谢。

回答

0

这是指在部署应用程序的机器上运行的sql server的本地实例。 sql2008是连接到的sql服务器的名称。

+0

感谢您帮助。所以,目前,我的本地机器上有一台名为“sql2008”的服务器。这应该是正确的吗?问题是,ASP.NET无法连接,并引发错误。 “服务器未找到或无法访问,请确认实例名称正确,并且SQL Server已配置为允许远程连接。” –

+0

'sql2008'是SQL Server **实例**的名称,准确地说(不是机器)。可以有任意数量的SQL Server实例在同一台计算机上并行运行 - 通过**实例名称**(显示在连接字符串中)相互区分 –

+0

因此,您能解释为什么“数据源= sql2008“的作品,但”数据源=。\ sql2008“不起作用? –

1

句点(。)表示SQL Server与asp.net应用程序在同一个框中运行。

我的预感是你发布的连接字符串被拉出了c#字符串文字。 \ \实际上只是一个斜杠,但您需要在C#中转义它,并且转义字符是另一个\。

sql2008是INSTANCE NAME。 Sql服务器可以在主机上多次安装。默认实例(其中只能有一个)可以是不带\ InstanceName后缀的引用。您可以有多个NAMED INSTANCES。在连接字符串中使用命名实例后缀是您指定要连接到哪个实例的方式。

编辑: 如果“datasource = sql2008”的作品,那么也许你的服务器名称是sql2008,你的数据库安装为默认实例。您可以通过检查服务控制面板小程序来确定您是否正在使用命名实例。如果您使用的是命名实例,那么sql服务将被列为“SQL SERVER(MSSQLSERVER $ INSTANCENAME)”。

+0

感谢您的回答。我在本地机器上有一个名为“sql2008”的实例,但asp.net无法连接。这是抛出一个错误。 “服务器未找到或无法访问,请确认实例名称正确,并且SQL Server已配置为允许远程连接。”你有什么想法,为什么这可能无法正常工作? –

+0

服务是否正在运行?你能从任何其他工具连接到它吗?像osql.exe? – Aheho

+0

是的,它正在运行。我现在已经确定可以使用“Data Source = sql2008”连接,但不能连接“Data Source =。\ sql2008”。你有什么想法,为什么?我需要在新计算机上调整SQL Server以匹配旧数据库上的配置,其中“Data Source =。\ sql2008”用于工作。 –

0

你好,我用这个,如果这将帮助你:

Data Source= server_name; Initial Catalog=database_name; User ID=user_id;Password=password 

或尝试这样做:

Server=.\server_name;Database=database_name; User ID=user_id;Password=password 
+0

你能发一段代码吗? –

0

始终坚持从本地的当前位置的意思是“\”。

在.NET中,您可以通过将@放在字符串前面或使用特殊值来表示所需字符来转义特殊字符逃离。在这种情况下,你可以使用\来表示\

“\\” == @ “\”

所以对我来说

“数据源=。\\ SQLServer2005" 的等于@ “数据源= \ SQLServer2005的”

“数据源=。\\ SQLServer2005的”“数据源= \\\ SQLServer2005的”

我看不出有什么,这可能意味着...

你可以试试吗?

 SqlConnection cnn ; 
     String connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" 
     cnn = new SqlConnection(connetionString); 
     try 
     { 
      cnn.Open(); 
      MessageBox.Show ("Connection Open ! "); 
      cnn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Can not open connection ! "); 
     } 

Lexique:

数据源:SQL服务器地址,注意如果它涉及一个实例 “SQL EXPRESS” - >请加..myadress..\SQLEXPRESS

初始目录:从数据库名称的sql server

UserId:在sql server上创建用户帐户以访问S上的数据库中定义

密码:它的密码^^

+0

谢谢你的帮助。好的,如果我使用连接字符串“DataSource = sql2008”,它可以工作,但是DataSource =“。\\ sql2008”不起作用。你能解释一下在SQL Server配置方面的含义吗?再次感谢。 –

+0

好的,我改变我的答案添加一个can clarter更..但。 \ \ \对我很陌生 –

+0

谢谢,我认为你是对的:。实际上是由于逃跑。请忽略exta“\”字符。因此,不起作用的实际字符串(忽略转义)是“Data Source =。\ sql2008”,但“Data Source = sql2008”起作用。有什么区别(就SQL Server而言)?在SQL Server中,我需要做什么才能使“Data Source =。\ sql2008”起作用?我有点奇怪的问题的原因是我们无法访问源代码来更改连接字符串。相反,我们必须让新的SQL Server实例与旧的实例匹配。 –

相关问题