.NET 透過 SqlConnection 連接 SQL Server 的連線字串
參考
無論使用C#或是VB.NET,當你要透過ADO.NET連接SQL Server資料庫的時候,必須指定連接字串,這篇文章,我們來看一下相關連線字串的彙總。
最簡單的連線字串,是以信任連線的方式連接 SQL Server 資料庫,字串如下:
Server=ServerAddress;Database=DataBaseName;Trusted_Connection=True;
ServerAddress是資料庫伺服器的名稱,DataBaseName則是所要連接的資料庫名稱,Trusted_Connection設為True,表示直接透過信任連線連接,因此不需要指定帳號密碼資料。
底下是非信任連線的狀況,其中的Trusted_Connection設定為flase,因此必須再指定ID與Password兩個屬性值給他,這兩個值分別代表開啟資料庫所需的帳號與密碼:
Server=ServerAddress;Database=DataBaseName;User ID=Username;Password=Password;Trusted_Connection=False;
除了上述的語法,你也可以利用以下的替代語法:
Data Source=ServerAddress;Initial Catalog=DataBaseName;Integrated Security=SSPI;
Data Source=ServerAddress;Initial Catalog=DataBaseName;User Id=myUsername;Password=myPassword;
「Integrated Security=SSPI」的意義與「Trusted_Connection=True」的相同,其他的幾個項目則對應至相同的屬性。
另外,你也可以透過指定 IP Address 的方式,連接逺端資料庫,字串如下,要特別注意的是,其中的Data Source除了IP位址,最後一個數字「1433」,是SQL Server的預設連接埠:
Data Source=192.168.100.100,1433;Network Library=DBMSSOCN;
Initial Catalog=DataBaseName;User ID=Username;Password=PasswordName;
如果你使用的是SQL Server Express版本,則連線字串是相同的,差別只在於Server名稱必須加上一個SQLEXPRESS ,如下式:
Server=ServerAddress\SQLEXPRESS ;Database=DataBaseName;Trusted_Connection=True;
由於.NET 2.0所釋出的SQL Server Express版本,允許開發人員直接以資料庫檔案的型式,進行資料庫存取維護,就如同Access資料庫,對於這種類型的資料連線字串又與上述的不同,請參考「SQL Server Express 資料庫檔案的連線字串(Connection String)
------------------------------------------------------------------------
AttachDbFileName 是指示 SQL Server Express 要到哪個路徑把資料庫自動附加進來,但當資料庫一被附加就會被鎖住,其他人的 SQL Server 將無法連到這個資料庫檔案。AttachDbFileName 若放在網路路徑,那麼必須要有足夠的網路權限才可以存取到,但鎖住的問題仍然存在。
你的朋友的講法也是錯的,|DataDirectory| 是指把資料庫放在本機該專案目錄下的 App_Data 裡面。
我說的是你要建一台 SQL Server,把資料庫加到 SQL Server 裡面,再把程式的連線字串修改指向那台 SQL Server。如果你不知道怎麼做,到書局去找本 SQL Server 的書看。
-----------------------------------------------------------------
先確認你連資料庫用的是哪個類別。
SQLServer 專用的是 System.Data.SqlXXX
Oledb 通用的是 System.Data.OledbXXX
Odbc 通用的是 System.Data.OdbcXXX
不同的類別決定你該用哪個連線字串。你目前貼出來的連線字串格式是 Oledb 。
資料來源:
Data source=系統管理工具 服務 SQLServer 的服務後面括號的執行個體名。預設 MSSQLSERVER 可省略執行個體名。
資料庫:
AttachDbFilename=動態附掛的資料庫路徑
Initial Catalog=靜態的資料庫名 |