ADO.Net連線SQL Server


要與SQL Server連線,必須將SQL Server安裝在系統中。現在使用Microsoft SQL Server管理工具來連線SQL Server。可以使用這個工具來處理資料庫。現在,按照以下步驟連線SQL Server。

第1步:開啟Microsoft SQL Server管理工具,它會提示進行資料庫連線,提供伺服器名稱和身份驗證。如下所示 -

連線成功後,顯示如下視窗。如下所示 -

第2步:建立資料庫

現在,通過選擇資料庫選項建立資料庫,然後右鍵單擊它。 它彈出一個選項選單,並提供了幾個選項。

點選新建資料庫,然後它要求填寫要建立資料庫名稱。 在這裡,我們建立了一個名稱為:student 的資料庫。如下圖所示 -

點選確定(Ok)按鈕,它會建立一個資料庫,可以在下面的截圖中的左側視窗看到如下所示。

第3步:建立連線並建立一個表

現在建立資料庫之後,使用下面的C#程式碼建立一個表。在這個原始碼中,使用建立的學生資料庫進行連線。

在Visual Studio 2017中,我們建立了一個包含以下C#程式碼的.NET控制台應用程式專案(名稱:AdoNetConsoleApplication) -

參考以下實現程式碼(Programe.cs) -

using System;
using System.Data.SqlClient;

namespace Programe
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().CreateTable();
        }
        public void CreateTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("create table student_info(id int not null,name varchar(100), email varchar(50), join_date date)", con);  
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();
                // Displaying a message  
                Console.WriteLine("Table created Successfully");
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

使用Ctrl + F5 執行此程式碼。執行完成後,它將顯示一條訊息給控制台,如下所示 -

也可以在Microsoft SQL Server Management Studio中看到建立的表。如下所示所示建立成功的表:student_info

可以看到,在這裡有一張表:student_info。但此時,這張表是空的,所以需要插入一些資料。

第4步: 將資料插入到表中,參考以下實現程式碼(AdoNetInsert.cs) -

using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{
    class AdoNetInsert
    {
        static void Main(string[] args)
        {
            new AdoNetInsert().InsertTable();
        }
        public void InsertTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                String sql = "insert into student_info(id, name, email, join_date)values('101', 'Hiniu Su', '[email protected]', '2017-11-18')";
                SqlCommand cm = new SqlCommand(sql, con); 
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();
                // Displaying a message  
                Console.WriteLine("插入資料記錄成功~!");
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

使用Ctrl + F5 執行此程式碼。 執行完成後,它將顯示一條訊息給控制台,如下所示 -

第5步:查詢/檢索記錄

在這裡,將查詢/檢索上一步中插入的資料。參考下面的C#實現程式碼(AdoNetSelect.cs)-

using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{

    class AdoNetSelect
    {
        static void Main(string[] args)
        {
            new AdoNetSelect().SelectTable();
        }
        public void SelectTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("SELECT * FROM student_info", con);
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                SqlDataReader sdr = cm.ExecuteReader();
                Console.WriteLine("當前 student_info 表中的記錄為:" );
                // Iterating Data  
                while (sdr.Read())
                {
                    Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]); // Displaying Record  
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong.\n" + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

通過Ctrl + F5 執行此程式碼,它將產生以下結果。這顯示兩條記錄,一條是手動插入的資料記錄。輸出結果如下圖所示:

第6步: 刪除記錄

經過前面5步,現在student_info表中有兩個記錄。以下C#程式碼從表中刪除一行。參考程式碼 (AdoNetDelete.cs)-

using System;
using System.Collections.Generic;
using System;
using System.Data.SqlClient;

namespace AdoNetConsoleApplication
{

    class AdoNetDelete
    {
        static void Main(string[] args)
        {
            new AdoNetDelete().DeleteFromTable();
        }
        public void DeleteFromTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("delete from student_info where id = '101'", con);
                // Opening Connection  
                con.Open();
                // Executing the SQL query  
                cm.ExecuteNonQuery();

                Console.WriteLine("已經成功地刪除了編號為:101 的學生資料資訊~!");

                // 重新查詢資料庫中的記錄資訊
                SqlCommand cm2 = new SqlCommand("SELECT * FROM student_info", con);
                // Executing the SQL query  
                SqlDataReader sdr = cm2.ExecuteReader();
                Console.WriteLine("當前 student_info 表中的記錄為:");
                // Iterating Data  
                while (sdr.Read())
                {
                    Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]); // Displaying Record  
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong.\n" + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

通過Ctrl + F5 執行此程式碼,它將產生以下結果(ID是111的這一條已經被刪除了,這裡只顯示編號為102的記錄資訊)。