日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 数据库连接测试以及备份

發布時間:2023/12/2 C# 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 数据库连接测试以及备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在我們要做一個如圖5.1的數據庫連接配置,從界面上看有三個功能需要實現:從配置文件中讀取數據庫連接的相關屬性、備份數據庫、測試連接。

現在我們就一個一個開始講解。

? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖5.1

1.從配置文件中讀取數據庫連接的相關屬性

1)? 配置文件中的數據庫連接:

<configuration>

? <appSettings>

??? <!--數據庫ip地址-->

??? <add key="DBAddress" value="192.168.1.139"/>

??? <!--煙點用戶名-->

??? <add key="UserName" value="sa"/>

??? <!--煙點用戶密碼-->

??? <add key="PassWord" value="pw@123456"/>

??? <!--煙點數據庫名-->

??? <add key="DBName" value="2016-12-01 李松"/>

??? <!--是否使用加密字符串-->

??? <add key="ConStringEncrypt" value="False"/>

? </appSettings>

<configuration>

?

2)? 創建一個類,數據庫連接類。

?? ????/// <summary>

??? /// 數據庫連接配置實體

??? /// </summary>

??? public class CLDBSet

??? {

??????? /// <summary>

??????? /// 數據庫連接地址

??????? /// </summary>

??????? public string DBAddress

??????? {

??????????? get;

??????????? set;

??????? }

?

??????? /// <summary>

??????? /// 數據庫名

??????? /// </summary>

??????? public string DBName

??????? {

??????????? get;

???? ???????set;

??????? }

?

??????? /// <summary>

??????? /// 用戶名

??????? /// </summary>

??????? public string UserName

??????? {

??????????? get;

??????????? set;

??????? }

?

??????? /// <summary>

??????? /// 口令

??????? /// </summary>

??????? public string PassWord

??????? {

??????????? get;

??????????? set;

??????? }

??????? /// <summary>

??????? /// 是否加密

??????? /// </summary>

??????? public bool IsEncrypt

??????? {

??????????? get;

??????????? set;

??????? }

?

??? }

3)? 從配置文件中獲取相應的數據庫連接字符串:

public class PubConstant

{

Private static string configFileName=” System.config”; //System.config配置文件名

? ? ? ?/// <summary>

??????? /// 得到app.config里配置項的數據庫連接字符串。

??????? /// </summary>

? ? ?/// <returns>返回CLDBSet 對象</returns>

?? ????public static CLDBSet GetConnectionString()

??????? {

?? ???????CLDBSet dbset = new CLDBSet();

?????? ?//獲得配置文件中是否使用加密文件的值

????? ????String conSTringEncrypt=System.Configuration.ConfigurationManager. AppSettings["ConStringEncrypt"];??

?????? if (ConStringEncrypt.ToLower() == "true")

??????????? {

????????????? ??dbset.IsEncrypt = true;

??????????? }

??????????? else

??????????? {

??????????????? dbset.IsEncrypt = false;

?????????? }

//獲得配置文件中的數據庫地址

dbset.DBAddress = System.Configuration.ConfigurationManager.AppSettings["DBAddress"];

//獲得配置文件中的數據庫名

dbset.DBName = System.Configuration.ConfigurationManager.AppSettings["DBName"];?

//獲得配置文件中的密碼

dbset.PassWord = System.Configuration.ConfigurationManager.AppSettings["PassWord"];??

//獲得配置文件中的口令(密碼)

dbset.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"];

return dbset;

}

}

4)? 在UI界面中顯示出當前配置文件中連接的數據庫

? ??????/// <summary>

??????? /// 當窗體加載時就顯示

??????? /// </summary>

?????? /// <param name="sender"></param>

?? /// <param name="e"></param>

??????? private void FSJKPZ_Load(object sender, EventArgs e)

??????? {

???? ?????PubConstant? pubConstant=New? PubConstant ();

?????????? Var dbSet= pubConstant. GetConnectionString();

//數據庫連接地址

??????????? txtAddress.Text = dbSet.DBAddress;

?????????? //用戶名

??????????? txtUserName.Text = dbSet.UserName;

?????????? //口令(密碼)

??????????? txtPassWord.Text = dbSet.PassWord;

??????????? //數據庫名

??????????? txtSJK.Text = dbSet.DBName;

? }

?

從配置文件中獲取當前數據庫連接已經算是完成了。

2.測試連接

測試連接數據庫這一塊? 可以根據輸入的服務器地址、用戶名、密碼、數據庫名進行測試連接。

1)? 先創建一個DBTester類,DBTester類主要寫數據庫測試連接的方法

??public class DBTester

{

?? /// <summary>

??????? /// 測試界面輸入的數據庫連接

??????? /// </summary>

??????? /// <param name="dbSet">數據庫連接信息</param>

??????? /// <returns></returns>

??????? public object[] TextDBUI(CLDBSet dbSet)

??????? {

??????????? bool state = false;

??????????? string msg = string.Empty;

??????????? object[] o = new object[] { };

?

??????????? SqlConnection con = new SqlConnection(string.Format("database={0};user={1};pwd={2};server={3};Connect Timeout=5", dbSet.DBName, dbSet.UserName, dbSet.PassWord, dbSet.DBAddress));

??????????? try

??????????? {

??????????????? con.Open();

??????????????? if (con.State == System.Data.ConnectionState.Open)

??????????????? {

??????????????????? state = true;

??????????????? }

??????????? }

??????????? catch (SqlException se)

??????????? {

??????????????? o = new object[] { se.Message, se.Source, se.ErrorCode };

??????????????? state = false;

??????????? }

??????????? finally

??????????? {

??????????????? con.Close();

??????????? }

?

??????????? if (state)

??????????? {

??????????????? return null;

??????????? }

??????????? else

??????????? {

??????????????? return o;

??????????? }

??????? }

}

?

2)注冊點擊測試連接按鈕事件

? /// <summary>

??????? /// 注冊點擊測試連接按鈕事件

??????? /// </summary>

??????? /// <param name="sender"></param>

? ??/// <param name="e"></param>

Public void btnTest_Click(object sender, EventArgs e)

??????? {

??????????? if (txtAddress.Text.Trim().Equals(""))

??????????? {

??????????????? this.ShowMessageBox(eDialogType.Forbidden, "請輸入服務器地址!");

??????????????? txtAddress.Focus();//為控件設置輸入焦點

? ??????????????return;

??????????? }

??????????? if (txtSJK.Text.Trim().Equals(""))

??????????? {

??????????????? this.ShowMessageBox(eDialogType.Forbidden, "請輸入數據庫名!");

??????????????? txtSJK.Focus();//為控件設置輸入焦點

??????????????? return;

??????????? }

????? ??????if (txtUserName.Text.Trim().Equals(""))

??????????? {

??????????????? this.ShowMessageBox(eDialogType.Forbidden, "請輸入用戶名!");

??????????????? txtUserName.Focus();//為控件設置輸入焦點

??????????????? return;

??????????? }

?

??????????? CLDBSet dbSet = new CLDBSet();

??????????? dbSet.DBAddress = txtAddress.Text.Trim();

??????????? dbSet.DBName = txtSJK.Text.Trim();

??????????? dbSet.UserName = txtUserName.Text.Trim();

??????????? dbSet.PassWord = txtPassWord.Text.Trim();

?

??????????? DBTester tester = new DBTester();

?

??????????? object[] result = tester.TextDBUI(dbSet);

?

??????????? if (result == null)

??????????? {

??????????????? this.ShowMessageBox(eDialogType.Success, null, "數據庫連接測試成功!");

??????????? }

??????????? else

??????????? {

??????????????? string s = string.Empty;

??????????????? s = @"數據庫連接測試失敗!\r\n

請檢查配置的正確性以及網絡的正常!

" + s;

??????????????? this.ShowMessageBox(eDialogType.Exception, null, s);

??????????? }

??????? }

?

3.備份數據庫

1) 寫一個方法備份數據庫的方法

??? ???/// <summary>

??????? /// 數據庫備份

??????? /// </summary>

?? ?????/// <param name="dbName">數據庫名稱</param>

??????? /// <param name="bakPath">備份文件路徑+名稱</param>

??????? /// <returns></returns>

??????? public bool BackupDatabase(string dbName, string bakPath)

??????? {

??????????? try

??????????? {

??????????????? string bakSql = string.Format(@"use master

backup database {0} to disk='{1}'", dbName, bakPath);

???????????? SqlHelper.ExecuteNonQuery(bakSql, null);

??????????? // 注:SqlHelper是一個數據庫的幫助類

??????????? }

??????????? catch

??????????? {

??????????????? return false;

??????????? }

??????????? return true;

??????? }

1)? 注冊備份數據庫按鈕點擊事件

? private void btnBackup_Click(object sender, EventArgs e)

??????? {

??????? //獲得配置文件中的數據庫連接

????????? PubConstant pubConstant=New PubConstant();

?? ???????Var dbset=? pubConstant. GetConnectionString(); //從配置文件中獲得的數據庫連接

?? string dbName = dbSet.DBName; //獲得數據庫名

string bakPath = "";

?????? SaveFileDialog saveFileDialog1 = new SaveFileDialog();

?????? saveFileDialog1.Filter = "BAK文件|*.bak";//類型是備份文件

?? ???saveFileDialog1.FileName = dbName+DateTime.Now.ToString("yyyyMMddHHmmss") + ".bak"; //備份后的文件名 數據庫名+當前時間

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

??????????? {

?

??????????????? bakPath = saveFileDialog1.FileName;

?

??????????????? if (BackupDatabase(dbName, bakPath))

??????????????? {

??????????????????? this.ShowMessageBox(eDialogType.Success, "數據庫備份成功!");

??????????????? }

??????????????? else

??????????????? {

??????????????????? this.ShowMessageBox(eDialogType.Exception, "數據庫備份失敗!");

??????????????? }

??????????? }

??????? }

? }? ?

?

轉載于:https://www.cnblogs.com/yaoxiaodan/p/6274191.html

總結

以上是生活随笔為你收集整理的C# 数据库连接测试以及备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。