[ADO.NET] 如何 建立 SQL Server 2005 Express Edition 資料庫 連線字串 / SQL Connect String
1.存取資料庫的第一步就是要利用DbConnection物件建立一個連線,以下幾個類別就是繼承它來的。
DbConnection 類別
2.至於該用什麼類別呢?就得看自己要用哪一個 Provider 來連資料庫,不同的資料庫得使用不同的連線字串來連線,請參考 http://www.connectionstrings.com/。
3.DbConnection的ConnectionString屬性就是在建立連線字串用,SqlConnection.ConnectionString 屬性:取得或設定用來開啟 SQL Server 資料庫的字串(需詳閱裡面有寫連線規則說明)。
4.若是要連 SQL 當然就是首選 .NET Framework Data Provider for SQL Server,Visual Studio 管理方式請參考[ADO.NET] 如何用 Visual Studio 2008 管理 SQL Server 2005。
5.連線字串主要必須要包含以下參數:
5-1.資料來源,參數名稱為下
注意:當使用 Data Source 參數時最好使用 Initial Catalog 來搭配,才不至於發生奇怪的錯誤。
5-2.資料庫名稱
5-3.驗証方式
5-3-1.SQL Server 驗証:用 User ID 及 Password 參數
5-3-2.Windows 整合驗証:用 Integrated Security 或 Trusted_Connection 參數
6.使用 SQL Server 驗証方式連線
要使用 SQL Server 驗証方式連線前,得先設定資料庫的安全性,選擇 SQL Server 及 Windows 驗証模式,然後再新增一個SQL Server的帳號,詳細設定方法請參考[ADO.NET] 安裝 SQL Server 2005 Express Edition
範例語法如下:
cn.ConnectionString = "data source=.\\sqlexpress;initial catalog=Northwind;User id=sa;Password=123qwe; ";
7.使用 Windows 整合驗証方式連線
使用使用 Windows 整合驗証來檢查使用的帳號是否被授予存取資料庫的權限,此法據說遠比 SQL Server 驗証安全。
範例語法如下:
cn.ConnectionString = "data source=localhost\\sqlexpress;initial catalog=Northwind;integrated security=sspi; ";
8.透過TCP連接資料庫設定詳見[ADO.NET] 安裝 SQL Server 2005 Express Edition
可指定IP Address及Port
範例語法如下:
cn.ConnectionString = "data source=tcp:127.0.0.1\\sqlexpress,1200;initial catalog=Northwind;integrated security=true;";
9.以下範例請先匯入命名空間
如何使用 SqlConnection 連接到 SQL Server
1.引用類別
SqlConnection cn = new SqlConnection();
2.設定連線字串
cn.ConnectionString = "data source=.\\sqlexpress;initial catalog=Northwind;User id=sa;Password=123qwe; ";
or
cn.ConnectionString = "data source=localhost\\sqlexpress;initial catalog=Northwind;integrated security=sspi; ";
or
cn.ConnectionString = "data source=tcp:127.0.0.1\\sqlexpress,1200;initial catalog=Northwind;integrated security=true;";
3.開啟資料庫
cn.Open();
4.關閉資料庫
cn.Close();
5.釋放資源
cn.Dispose();
C#完整範例如下
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace SQLConnectString
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//1.引用類別
SqlConnection cn = new SqlConnection();
private void button1_Click(object sender, EventArgs e)
{
//2.設定連線字串
if (((ButtonBase)(sender)).Text == "整合式驗證")
{
cn.ConnectionString = "data source=.\\sqlexpress;initial catalog=Northwind;integrated security=sspi; ";
}
else if (((ButtonBase)(sender)).Text == "SQL Server 驗証")
{
cn.ConnectionString = "data source=localhost\\sqlexpress;initial catalog=Northwind;User id=sa;Password=123qwe; ";
}
else if (((ButtonBase)(sender)).Text == "TCP 驗証")
{
cn.ConnectionString = "data source=tcp:127.0.0.1\\sqlexpress,1200;initial catalog=Northwind;integrated security=true;";
}
//3.開啟資料庫
cn.Open();
Console.WriteLine("State : {0}", cn.State);
Console.WriteLine("Version : {0}", cn.ServerVersion);
Console.WriteLine("Database : {0}", cn.Database);
Console.WriteLine("DataSource : {0}", cn.DataSource);
Console.WriteLine("WorkstationId : {0}", cn.WorkstationId);
//4.關閉資料庫
cn.Close();
Console.WriteLine("State: {0}", cn.State);
//5.釋放資源
cn.Dispose();
}
}
}
VB完整範例如下
Imports System.Data.SqlClient
Public Class Form1
'1.引用類別
Private cn As New SqlConnection()
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click, button2.Click, button3.Click
'2.設定連線字串
If DirectCast((sender), ButtonBase).Text = "整合式驗證" Then
cn.ConnectionString = "data source=.\sqlexpress;initial catalog=Northwind;integrated security=sspi; "
ElseIf DirectCast((sender), ButtonBase).Text = "SQL Server 驗証" Then
cn.ConnectionString = "data source=localhost\sqlexpress;initial catalog=Northwind;User id=sa;Password=123qwe; "
ElseIf DirectCast((sender), ButtonBase).Text = "TCP 驗証" Then
cn.ConnectionString = "data source=tcp:127.0.0.1\sqlexpress,1200;initial catalog=Northwind;integrated security=true;"
End If
'3.開啟資料庫
cn.Open()
Console.WriteLine("State : {0}", cn.State)
Console.WriteLine("Version : {0}", cn.ServerVersion)
Console.WriteLine("Database : {0}", cn.Database)
Console.WriteLine("DataSource : {0}", cn.DataSource)
Console.WriteLine("WorkstationId : {0}", cn.WorkstationId)
'4.關閉資料庫
cn.Close()
Console.WriteLine("State: {0}", cn.State)
'5.釋放資源
cn.Dispose()
End Sub
End Class
完整範例下載:
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET