C#連接SQL Server數據庫(一)


C#連接數據庫:Connection對象

1.Connection對象概述

  Connection對象是一個連接對象,主要功能是建立與物理數據庫的連接。其主要包括4種訪問數據庫的對象類,也可稱為數據提供程序,分別介紹如下。
    SQL Server數據提供程序,位於System.Data.SqlClient命名空間。
    ODBC數據提供程序,位於System.Data.Odbc命名空間。
    OLEDB數據提供程序,位於System.Data.OleDb命名空間。
    Oracle數據提供程序,位於System.Data.OracleClient命名空間。

說明:根據使用數據庫的不同,引入不同的命名空間,然后通過命名空間中的Connection對象連接類連接數據庫。例如,連接SQL Server數據庫,首先要通過using System.Data.SqlClient命令引用SQL Server數據提供程序,然后才能調用空間下的SqlConnection類連接數據庫。

2.連接數據庫

  以SQL Server數據庫為例,如果要連接SQL Server數據庫,必須使用System.Data.SqlClient命名空間下的SqlConnection類。所以首先要通過using System.Data.SqlClient命令引用命名空間,連接數據庫之后,通過調用SqlConnection對象的Open方法打開數據庫。通過SqlConnection對象的State屬性判斷數據庫的連接狀態。

界面:

代碼: ``` private void btn1_Click(object sender, EventArgs e) { if (txt1.Text == "") { MessageBox.Show("請輸入要連接的數據庫名稱!"); } else { try { string connString = "server=.;database=" + txt1.Text.Trim() + ";uid=test;pwd=test;connect timeout=5"; //** SqlConnection sqlConnection = new SqlConnection(connString); //** sqlConnection.Open(); //**
                if (sqlConnection.State == ConnectionState.Open)
                {
                    lab2.Text = "數據庫【" + txt1.Text.Trim() + "】已經連接並打開!";
                }
            }
            catch
            {
                MessageBox.Show("數據庫連接失敗!");
            }
        }
    }
##3.關閉連接
&emsp;&emsp;<b>當對數據庫操作完畢后,要關閉與數據庫的連接,釋放占用的資源。可以通過調用SqlConnection對象的Close方法或Dispose方法關閉與數據庫的連接。這兩種方法的主要區別是:Close方法用於關閉一個連接,而Dispose方法不僅關閉一個連接,而且還清理連接所占用的資源。當使用Close方法關閉連接后,可以再調用Open方法打開連接,不會產生任何錯誤。而如果使用Dispose方法關閉連接,就不可以直接用Open方法打開連接,必須再次重新初始化連接再打開。</b><br>
<b>界面:</b>
<center><img src="https://img2018.cnblogs.com/blog/1849125/202001/1849125-20200131124009357-1639087622.png" width="350" height="300"> <img src="https://img2018.cnblogs.com/blog/1849125/202001/1849125-20200131124106628-328825224.png" width="350" height="300"></center>
<b>代碼:</b>
    SqlConnection sqlConnection; //***
    /// <summary>
    /// 連接數據庫
    /// </summary>
    private void btn1_Click_1(object sender, EventArgs e)
    {
        if (txt1.Text == "")
        {
            MessageBox.Show("請輸入數據庫名稱:");
        }
        else
        {
            try
            {
                string connString = "server=.;database=" + txt1.Text.Trim() + ";uid=test;pwd=test;connect timeout=5"; //***
                sqlConnection = new SqlConnection(connString); //***
                sqlConnection.Open(); //***

                if (sqlConnection.State == ConnectionState.Open)
                {
                    btn1.Text = "連接成功";
                }
            }
            catch(Exception ex) 
            {
                MessageBox.Show(ex.Message);
                txt1.Text = "";
            }
        }
    }

    /// <summary>
    /// 使用Close方法關閉連接並重新調用Open方法連接數據庫
    /// </summary>
    private void btn2_Click(object sender, EventArgs e)
    {
        try
        {
            string str = "";

            sqlConnection.Close(); //***
            if (sqlConnection.State == ConnectionState.Closed)
            {
                str = "數據庫已經成功關閉\n";
            }

            sqlConnection.Open(); //***
            if (sqlConnection.State == ConnectionState.Open)
            {
                str += "數據庫已經成功打開\n";
            }

            rtbox1.Text = str;
        }
        catch (Exception ex)
        {
            rtbox1.Text = ex.Message;
        }
    }

    /// <summary>
    /// 使用Dispose方法關閉連接並重新調用Open方法連接數據庫
    /// </summary>
    private void btn3_Click(object sender, EventArgs e)
    {
        try
        {
            sqlConnection.Dispose(); //***
            sqlConnection.Open(); //***
        }
        catch (Exception ex)
        {
            rtbox1.Text = ex.Message;
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM