基於.NET平台的Windows編程實戰(八) 資料庫管理及其他協助工具功能的實現

來源:互聯網
上載者:User

本文配套源碼

申明:本系列課程是專為新手們寫來入門練慣用的,目的是想通過一個完整的問卷調查管理系統案例來讓新手們瞭解、加深或是熟悉項目的開發流程及

在.NET平台上使用VS2005和C# 進行Windows方面的編程;在整個課程的設計上,我盡量避開或是根本不討論底層的以及效能最佳化等方面的東西,

故高手完全可以無視本系列課程。

本課將帶領大家一起來實現資料庫匯出與還原、視窗管理等協助工具功能。這些功能並非本案例系統的主要功能,只是一些輔助上的功能,

故本課程的只是提取幾個功能出來簡單的講解一下其實現的原理或方法,至於其設計的思路在這裡就不講了,似乎沒有什麼可講的^_^

下面進入主題吧……

一、資料庫匯出與還原功能的實現

大家在一些系統裡應該也看到過資料庫匯出與還原的功能,不知道大家在使用的時候有沒有去想過其實現的原理?其實,其實現的原理與邏輯是非常之簡單的:

匯出時,找到其資料庫存放的位置及其名稱,之後用一個File.Copy()方法將其COPY到新的位置即可;

而還原,正好是相反,即從新的位置COPY到當前系統資料庫的位置,

並覆蓋掉當前系統的資料庫;其實現的代碼如下所示:

/**//// <summary>
/// 匯出資料庫
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BakDbToolStripMenuItem_Click(object sender, EventArgs e)
{
string dbpath = @"..\..\DataBase\Lj_QuestionnaireSys.mdb";//擷取當前資料庫路徑,如有問題請在前面加上"..\..\",但在發布時要去掉前面的"..\..\"
string _dbpath = dbpath.Substring(dbpath.LastIndexOf('\\'));//取出資料庫的名稱
SaveFileDialog saveFileDialog = new SaveFileDialog();//開啟儲存路徑的對話方塊
saveFileDialog.Filter = "Access資料庫檔案(*.mdb)|*.mdb"; //設定儲存的檔案類型
saveFileDialog.Title = "請選擇儲存的路徑";//對話方塊標題
saveFileDialog.RestoreDirectory = true;//當對話方塊關閉前還原到目前的目錄狀態
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
File.Copy(dbpath, saveFileDialog.FileName,true);//將資料庫檔案複製到選擇的新路徑位置
MessageBox.Show("匯出成功!請妥善保管好您所匯出的資料庫!^_^","操作提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("匯出失敗!請重新匯出!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}

}
/**//// <summary>
/// 還原資料庫
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RDbToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("註:此操作將會還原掉現有的資料庫,且不可恢複,請謹慎操作!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
{
string dbpath = @"..\..\DataBase\Lj_QuestionnaireSys.mdb";//擷取當前資料庫路徑,如串連有問題請在前面加上"..\..\",但在發布時要去掉前面的"..\..\"
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Access資料庫檔案(*.mdb)|*.mdb";
ofd.Title = "請選擇要還原的資料庫,並開啟";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
try
{
File.Copy(ofd.FileName, dbpath, true);//將選擇要還原的資料庫覆蓋掉當前的資料庫
MessageBox.Show("還原成功!請重新整理相應列表!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("還原失敗!請檢查要還原的資料庫是否正確!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

}
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.