Sql Server Express是一個服務器類數據庫引擎。這意味着,是的,你連接到服務器而不是直接讀/寫文件。服務器引擎將處理對數據的訪問。
這很重要。這是允許sql server安全地處理像asp.net網站這樣的情況的機制,其中每個頁面請求都在不同的線程中運行,並且您可能有許多人都想同時寫入數據庫。如果每個進程都只是寫入文件,那麼您會遇到數據損壞的問題。將請求發送到單個服務器進程允許它正確地確保每個項目在單獨的獨立事務中運行,並安全地處理這些操作。
該機制對性能也很重要。它允許系統執行諸如將表和索引預加載到內存中一次,供正在對該數據發出請求的任何進程使用。這就是爲什麼一個像sql server這樣的服務器引擎表達甚至mysql在數據擴展性能方面總是能夠擊敗象sqlite這樣的進程內引擎,即使sqlite開始時的資源密集度更低,而且通常在小的時候似乎更快數據或小負載。
需要有該服務器進程在運行也是爲什麼你應該不使用SQL Server本地桌面應用程序表達。在這種情況下,您不希望強制用戶使用內存全天候使用服務器進程來緩存索引和表數據,這些數據可能只是偶爾參考的內容。這是你的sql服務器契約,sqlite和訪問數據庫的地方。
至於你的具體連接問題,有很多事情可能會導致這種情況。你確定sql server express目前已經安裝並運行在你的系統上嗎?如果您手動輸入「localhost」或「./SQLEXPRESS」,會發生什麼情況?
嘿,這讓我比以前更接近,但仍然沒有聯繫。我現在得到這個錯誤:無法添加數據連接。 ExecuteScalar需要一個開放且可用的Connection。連接的當前狀態已關閉。 – 2010-07-25 04:28:08