2012-12-13 38 views
2

我們有一個「傳統」應用程序,它使用ODBC連接到基礎數據庫(可以是Access,Oracle或SQL Server)。對於單元(或者更恰當的說,「集成」)測試目的,我想連接一個SQL Server 2012 LocalDB實例。但是,我無法弄清楚使用正確的ODBC連接字符串。與SQL Server 2012 LocalDB實例的ODBC連接

我曾嘗試:

[TestMethod] 
    public void OdbcConnectionToLocalDb() 
    { 
     string connectionString = "DRIVER=SQL Server Native Client 11.0;Trusted_Connection=Yes;SERVER=(localdb)\v11.0;Description=LocalDB;"; 
     using (OdbcConnection connection = new OdbcConnection(connectionString)) 
     { 
      using (var command = new OdbcCommand("select * from Person", connection)) 
      { 
       connection.Open(); 
       // ... 
      } 
     } 
    } 

然而,連接打開時,下面的異常被拋出:

System.Data.Odbc.OdbcException: ERROR [08001] [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [67]. 
ERROR [HYT00] [Microsoft][SQL Server Native Client 11.0]Login timeout expired 
ERROR [08001] [Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. 

是否有可能通過ODBC連接到SQL Server 2012中的LocalDB連接/驅動程序?是否可以連接到特定的文件?

[編輯] 加勒特指出這是可能的,很好。我必須讓連接字符串錯誤,所以我的問題應該是:連接字符串應該是什麼?

+0

也可能在這裏有一些有用的信息:http://www.mssqltips.com/sqlservertip/2694/getting-started-with-sql-server-2012-express-localdb/ –

+0

謝謝,@AaronBertrand。這確實有一些有用的信息,但我看不出有什麼特別有助於解決我的問題。獲取有效的ODBC連接字符串到我的LocalDB。 –

+0

這就是爲什麼我發佈它作爲評論,而不是答案。 :-)我可以問你爲什麼要將你的遺留應用程序連接到LocalDB而不是一個普通的Express實例?您的連接字符串看起來像是用來生成LocalDB引擎實例的類型,然後執行類似於創建數據庫的操作。如果你已經創建了一個實例並創建了一個數據庫,我希望在你的連接字符串中看到更多的「東西」,以及更具體的「SERVER」。 –

回答

3

您需要指定這樣的連接字符串:

Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=(localdb)\v11.0 

我認爲最主要的是,你引用它作爲數據源,而不是服務器。

0

是的,這是可能的。確保安裝最新的驅動程序:SQL Server Native Client「Denali」(用於ODBC和OLE DB)。

看看這裏的更多信息: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

+0

感謝您的回答,@Garrett。很高興它**是可能的,這就是我所希望的。我已經下載並安裝了最新的SQL Server Native Client(從這裏開始,順便說一句:http://www.microsoft.com/en-nz/download/details.aspx?id=29065,查找「Microsoft®SQL Server®2012 Native Client「)。但是,我似乎沒有正確的連接字符串,因爲我仍然得到與上面相同的錯誤。 –