[ADO.NET] 如何 建立 SQL Server 2005 Express Edition 資料庫 連線字串 / SQL Connect String

[ADO.NET] 如何 建立 SQL Server 2005 Express Edition 資料庫 連線字串 / SQL Connect String

1.存取資料庫的第一步就是要利用DbConnection物件建立一個連線,以下幾個類別就是繼承它來的。

SqlConnection 類別

OleDbConnection 類別

OdbcConnection 類別

OracleConnection 類別

SqlCeConnection 類別

DbConnection 類別

2.至於該用什麼類別呢?就得看自己要用哪一個 Provider 來連資料庫,不同的資料庫得使用不同的連線字串來連線,請參考 http://www.connectionstrings.com/

快照-2009529172710_thumb[1] 

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 來搭配,才不至於發生奇怪的錯誤。

  快照-2009529182022_thumb[2]

   5-2.資料庫名稱

  快照-200952918229_thumb[2]

   5-3.驗証方式

        5-3-1.SQL Server 驗証:用 User IDPassword 參數

  快照-2009529182611_thumb[2]

  快照-200952918241_thumb[1]

        5-3-2.Windows 整合驗証:用 Integrated SecurityTrusted_Connection 參數

  快照-2009529182750_thumb[2]

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.以下範例請先匯入命名空間

System.Data.SqlClient

 

如何使用 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

完整範例下載:

SQLConnectString.rar

 

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo