1. 程式人生 > >如何通過程式碼連線SQL Server資料庫

如何通過程式碼連線SQL Server資料庫

我們曾經為南方電網做過幾個有關架空線路的科技專案,要趁著假期有整段的空閒時間,把這些程式碼整理一下,放入團隊剛剛重構的程式碼庫中。

由於這些專案使用的資料庫為 SQL Server,所以在整理程式碼之前需要解決兩個問題:

  1. 把以前備份的資料庫檔案還原。
  2. 建立連線 SQL Server 資料庫的配置檔案。

我在這裡做個記錄,等開學之後新進入LSGO軟體技術團隊的小夥在 Code Review 團隊程式碼時有個參考。最起碼根據步驟能夠把環境配置好,讓程式碼 Run 起來。

先解決第一個問題,備份資料的還原。

Step1:進入 SQL Server 建立一個空白資料庫,我們這裡建立的資料庫名稱為 HeYuan。

進入SQL Server

Step2:還原資料庫檔案,這裡需要注意還原選項的配置。

還原資料庫檔案

此處選擇 源裝置 然後在相應的目錄中新增需要還原的資料庫檔案。

選擇還原的檔案

特別注意,在 選項 部分勾選 覆蓋現有資料庫(WITH REPLACE)(O) 否則還原失敗。

設定還原檔案選項

Step3:檢視還原之後的資料,確認是否完整。

檢視資料

如果當初備份的檔案沒有問題,到這裡,還原資料庫檔案就搞定了。

接著,我們解決第二個問題,通過程式碼連線資料庫,由於 SQL Server 資料庫對 sa 使用者是遮蔽的,所以我們需要先對登陸的 sa 使用者屬性進行設定。另外 SQL Server 預設的身份驗證是 Windows 模式,我們也需要將其修改為 SQL Server 和 Windows 模式。

Step1:設定 sa 使用者屬性。

找到sa使用者

狀態 中將登陸設為開啟。

設定sa使用者授權

常規 中設定 sa 使用者的密碼,在寫程式碼連線資料庫時需要用到。

設定sa使用者密碼

Step2:設定資料庫的連線屬性。

選擇連線...

這裡寫圖片描述

Step3:重啟資料庫服務

通過以上三個步驟,我們就可以通過程式碼的方式來連線 SQL Server 資料庫了,否則連線失敗。程式碼如下:

public interface ILSGOConnectionProperty
{
    string Server
    {
        get;
        set;
    }
    string Database
    {
        get;
        set;
    }
    string User
    {
        get;
        set;
    }
    string Password
    {
        get;
        set;
    }
}
    
public override bool CreateMisDbConnection(ILSGOConnectionProperty connectionProperty,ref string error)
{
    string server = connectionProperty.Server;
    string userId = connectionProperty.User;
    string password = connectionProperty.Password;
    string datatbase = connectionProperty.Database;
    string connectionString = "Initial Catalog=" + datatbase + ";Data Source=" + server + ";User Id=" + userId + ";Password=" + password + ";";
    SqlConnection pConnection = new SqlConnection(connectionString);

    try
    {
        pConnection.Open();
        return true;
    }
    catch(Exception ex)
    {
        error = ex.Message;
        return false;
    }
}

我們可以通過 WinForm,採用與使用者互動的方式來構造與資料庫連線的配置檔案。

填寫引數

連線成功

得到 XML 的配置檔案如下:

<OLPlantSafeDistanceSystemVersion1.0>
  <DataSource>
    <Server>10.14.12.254</Server>
    <User>sa</User>
    <Password>5d4154</Password>
    <Database>HeYuan</Database>
    <DBType>SqlServer</DBType>
  </DataSource>
</OLPlantSafeDistanceSystemVersion1.0>

這樣,在編寫程式碼時,通過讀取配置檔案來確定與資料庫的連線資訊,當資料庫發生變動時,只需要更改配置檔案就好,滿足軟體開發的 開閉原則

最後總結一下,以往新加入的小夥伴,遇到問題之後,我們都會詳細的給予解答。慢慢的,我們發現很多問題都是相同的。乾脆,我就把他們常問的問題,整理出來寫在這個微訊號中,遇到問題,就把對應的圖文轉過去,或許能夠提升不少大家的做事效率!

就寫到這裡吧!See You!