1. 程式人生 > >【基於WinForm+Access區域網共享資料庫的專案總結】之篇三:Access遠端連線資料庫和窗體打包部署

【基於WinForm+Access區域網共享資料庫的專案總結】之篇三:Access遠端連線資料庫和窗體打包部署

【小記】:最近基於WinForm+Access資料庫完成一個法律諮詢管理系統。本系統要求類似網頁後臺管理效果,並且基於區域網內,完成多客戶端操作同一資料庫,根據許可權不同分別執行不同功能模組。核心模組為級聯統計型別管理、資料庫諮詢資料扇形統計、樹的操作、諮詢資料的管理、手寫分頁、Excel資料的匯出、多使用者操作伺服器資料等。並支援多使用者同時操作,遠端連線資料庫且對資料IP資訊的修改。開發過程中特別對介面的要求和事後多使用者操作顯得略為麻煩。自此,本專案得以完善交付,然後對其進行小結。依舊採用整個框架認識,核心知識逐個梳理分析,以便於二次開發和需要之程式設計師共享。

篇三:Access遠端連線資料庫和窗體打包部署

【開篇】本章概述

一、Access實現遠端連線資料庫 

所遇問題和解決方案:之前介紹多,之前大都採用Oracle和Server已經MySQL開發,雖然Access資料庫開發倒也使用過。但是遠端配置還是第一次,所以開始就遇到棘手問題。那麼如果配置資料庫,如何達到遠端的效果?

第一思路:採用ftp配置伺服器,其他客戶端訪問我的IP地址和埠即可。於是下載一個簡易的FTP軟體,將本地資料庫上傳。可以連線資料庫遇到問題了,無法訪問此檔案。原則上是可行的,後來專案總結髮現當時自己本地配置,外加sql連線語句的問題。導致原因所在吧。後來採用第二種思路。

第二思路:區域網內使用VPN進行訪問,然後連線共享資料夾。於是對VPN進行配置(VPN配置,檔案共享,遠端設定等資訊隨後會在技術梳理具體展開),在配置完成後,共享檔案,安裝客戶端程式依舊無法實現連線。那麼幾經折騰之後決定採用第三種思路。

第三思路:直接採用遠端連線資料庫,在伺服器共享檔案配置IP地址,前期還是無法實現區域網共享的效果。後來得以解決,如何解決隨後小結中結合VPN失敗原因對比分析。

以上三種思路,最終得以實現遠端效果,效果圖如下:

以上問題分析:

       1、首先解決遠端共享,如何連線成功?

        前提是區域網內遠端連線資料庫,隨後伺服器進行資料檔案共享,如何保證檔案的安全性隨後介紹。然後訪問IP地址,IP地址可以更改的,因為如果伺服器穩定尚可。我所遇到的客戶伺服器就是本地膝上型電腦,在聯網時候IP地址隨時可以變化,或者更換伺服器時。IP地址靈活性顯得重要,故不可寫死。但是問題出現了,很多人或許開始時候也遇到過,IP地址儲存的問題。筆者最終沒有找到更好的解決方案,只是以config檔案中寫入資料庫連線語句,然後將其儲存到本地磁碟中。這樣修改IP時候,在伺服器本地儲存。

      2、如何控制資料庫檔案安全性?

          安全性問題一直是程式設計師最為關注問題之一,由於本人針對的客戶是同一個公司,10多人操作,基本都不懂軟體方面技術,再則擁有共同利益,不會對外開放,利益分配上對安全性起一定作用。故做些簡單操作即可,但是面對更多使用者,如何更好完善,大家有好的想法可供討論。我則直接採用在accdb檔案中進行資料庫加密。

     3、如此遠端連線會有隱患問題?

        因為遠端連線可以檢視伺服器所有資訊,特別針對伺服器為本地電腦。假如管理員伺服器電腦有些隱私,私人資訊,密碼複製文字或你懂的視訊什麼的,遇到女同事訪問,也顯得不好不是。故此,遠端連線可以解決問題,但是遠端的同時,你的資訊無意全部暴露。基於此如何解決呢?可以採用VPN設定,通過VPN共享出來的檔案,進行連線即可,其他非共享隱藏的。至於ftp,我認為可以達到最終效果的,筆者沒有嘗試,有興趣的可以試試。

二、窗體的打包

1、選中解決方案->新建專案->其他專案型別->安裝和部署->Visual Studio Installer->安裝專案->更改名字和儲存路徑

2、1在應用程式資料夾右鍵選擇輸出檔案->主輸出->確定。

     2再次 應用程式資料夾 屬性新增檔案,分別選擇ico格式的安裝和解除安裝快捷方式圖片。再同樣方式在C:\Windows\System32下找到mstsc.exe檔案,進行新增。

     3選擇主輸出,屬性,建立快捷方式;選擇mstsc,屬性,建立快捷方式。

     4在新建專案Setup1,按住F4檢視屬性,複製屬性中producecode:{E9B10DB2-B42A-4CA5-9F12-B419BC939738}

     5點選解除安裝某某管理系統,F4,引數,x/{E9B10DB2-B42A-4CA5-9F12-B419BC939738}.配置Icon圖片

     6同樣方式設定安裝某某管理系統的Icon

     7應用程式資料夾,F4檢視屬性,[ProgramFilesFolder][Manufacturer]\[ProductName]中的刪除[Manufacturer]

     8選擇生成專案Setup生成

【篇中】知識梳理

 1、如何配置連線VPN?

  VPN伺服器:  進入網路共享中心->更改介面卡設定->是否有選單欄(沒有則點選Alt建)->檔案->新建傳入連線->新增新的使用者->設定使用者名稱、密碼->確定->下一步->最後配置完成。

  客戶端連線:   進入網路共享中心->設定新的網路和連線->連線到工作區->下一步->使用我的Inter連線(VPN)->輸入連線的IP地址->建立->輸入使用者名稱、密碼(類似寬頻連線)。

 2、如何使用FTP?

 兩種方式:1.下載個迷你FTP伺服器,設定IP地址,埠號。選擇是否需要登陸驗證,如果選中則提示設定賬戶密碼。啟動後進行測試。測試成功後,可以點選瀏覽選中生成檔案。

               2.下載FTP軟體,特別在釋出網站時候,通過輸入你的域名空間。然後將VS中的專案打包生成,將生成後的檔案進行上傳到空間中即可。

3、如何設定檔案共享?

        1 將需要共享的檔案放到一個資料夾中,右鍵點選資料夾,檢視共享->特定使用者->點選下拉框選擇使用者,點選新增->對許可權級別進行設定->共享

        2 開啟控制面板->網路和Internet->網路和共享中心->更改高階共享設定->所有網路->關閉密碼共享保護

4、如何進行遠端?

   點選win+R->輸入mstsc->確定->輸入IP地址、使用者名稱、密碼.

  注意一點:有時候都ok,但是還是連線失敗,去檢視遠端設定中是否允許遠端連線

  點選計算機屬性->遠端設定->遠端->選擇允許連線

5、 Access資料庫怎樣完成連線,儲存的?

  兩種Access的連線語句:

              1.本地連線:<add name="sql" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\bncPc\db\Legal.accdb'" />

              2.遠端連線:<add name="sql" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=//10.130.16.137/db/Legal.accdb" />

6、儲存IP地址的方法?

  通過控制操作config檔案,具體方法如下:

        private void save()
        {
            try
            {
                if (textBox3.Text != "")
                {
                    XDocument doc = XDocument.Load(file); 
                    //sql資料庫資料庫配置
                    //string connstring = "initial catalog=Highway;Data Source=" + this.textBox3.Text + ";uid=" + this.textBox4.Text + ";pwd=" + this.textBox5.Text + ";";
                   //access資料庫遠端配置
                    //Provider=Microsoft.ACE.OLEDB.12.0;Data Source=//10.130.16.136/db/Legal.accdb
                    string connstring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=//" + textBox3.Text.ToString()+ "/db/Legal.accdb";
                    doc.Elements("configuration").Elements("connectionStrings").Elements("add").Attributes("connectionString").FirstOrDefault().SetValue(connstring);
                    doc.Save(file);
                    //由於DBHelperSQL中的ConnectionString(公共靜態變數)未被修改引發的bug
                    XDocument xdoc = XDocument.Load(file);
                    string val = doc.Elements("configuration").Elements("connectionStrings").Elements("add").Attributes("connectionString").FirstOrDefault().Value;
                    SQLHelper.connstr = val;
                }
                else
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message+ex.StackTrace);
                //MessageBox.Show("資料庫儲存失敗!!");
            }
        }
View Code

附件:配置文件

【使用介紹】

一 本系統採用VS2010+Access完成,執行要求如下:

  1 win7以上 作業系統  

  2 安裝Office 2010以上版本  

  3 安裝FromWork4.0外掛和AccessDatabaseEngine.exe

二 管理員操作配置  

1,將【法律諮詢系統】資料夾下的【db資料夾】複製到c盤  

2,設定db資料夾為共享    

   (1)右擊資料夾-》共享-》特定使用者-》新增Everyone使用者,並設定讀寫。-》共享    

   (2)開啟控制面板-》網路和Internet-》網路和共享中心-》更改高階共享設定-》所有網路-》關閉密碼共享保護  

3,安裝db下的Microsoft.NET.exe  

4,安裝:法律諮詢中心\Debug\Setup1.msi      解除安裝:法律諮詢中心\Debug\setup.exe

三 客戶端的使用  

1,將【法律諮詢系統】資料夾下的【client資料夾】複製到c盤  

2,安裝client下的Microsoft.NET.exe和AccessDatabaseEngine.exe  

3,win+R開啟cmd-》mstsc-》遠端IP地址  

4,開啟軟體伺服器設定下更改管理員IP地址登入

四 初始化設定  

1,管理員初始化:使用者名稱:admin 密碼:admin  

2,使用者初始化:使用者名稱:ad 密碼:123

五 常見登入失敗解答  

1 db/client資料夾是否拷貝到C盤  

2 遠端伺服器是否成功  

3 伺服器設定下的IP地址是否配置正確。

【篇末】本章總結

 截止此刻,Access遠端連線資料庫和窗體打包部署系列文章全部結束,本系列主要介紹一些Access遠端連線操作,以及這個探索過程中,對ftp,vpn,檔案共享等理解。中間對Excel和統計圖的介紹,並推薦幾篇相關檔案。整體採用分割法進行分析。先介紹思路和整體效果。然後進行知識點梳理總結,最後彙總。這樣形成知識分離化,隨後需要直接使用,也幫助需要之人。

相關推薦

基於WinForm+Access區域網共享資料庫專案總結Access遠端連線資料庫窗體打包部署

【小記】:最近基於WinForm+Access資料庫完成一個法律諮詢管理系統。本系統要求類似網頁後臺管理效果,並且基於區域網內,完成多客戶端操作同一資料庫,根據許可權不同分別執行不同功能模組。核心模組為級聯統計型別管理、資料庫諮詢資料扇形統計、樹的操作、諮詢資料的管理、手寫分頁、Excel資料

基於WinForm+Access區域網共享資料庫專案總結WinForm開發總體概述與技術實現

【小記】:最近基於WinForm+Access資料庫完成一個法律諮詢管理系統。本系統要求類似網頁後臺管理效果,並且基於區域網內,完成多客戶端操作同一資料庫,根據許可權不同分別執行不同功能模組。核心模組為級聯統計型別管理、資料庫諮詢資料扇形統計、樹的操作、諮詢資料的管理、手寫分頁、Excel資料

基於WinForm+Access區域網共享資料庫專案總結WinForm開發扇形圖統計Excel資料匯出

【小記】:最近基於WinForm+Access資料庫完成一個法律諮詢管理系統。本系統要求類似網頁後臺管理效果,並且基於區域網內,完成多客戶端操作同一資料庫,根據許可權不同分別執行不同功能模組。核心模組為級聯統計型別管理、資料庫諮詢資料扇形統計、樹的操作、諮詢資料的管理、手寫分頁、Excel資料

基於WPF+OneNote+Oracle的中文圖片識別系統階段總結批量處理後的txt檔案入庫處理

【小記】:大膽嘗試才能突破,某個中醫藥大學有一批圖片需要處理(ORC),然後進行資料探勘。之前沒有接觸過ORC這個東西,但是還是應允了。在網上搜索一番,關於中文圖片識別,最終敲定為基於微軟的OneNote,其識別率相對較高。網上這個技術點的資料真心不多,後來於部落格園找到一篇博文,但是那個

基於WPF+OneNote+Oracle的中文圖片識別系統階段總結WPF常用知識以及本專案設計總結

【小記】:大膽嘗試才能突破,某個中醫藥大學有一批圖片需要處理(ORC),然後進行資料探勘。之前沒有接觸過ORC這個東西,但是還是應允了。在網上搜索一番,關於中文圖片識別,最終敲定為基於微軟的OneNote,其識別率相對較高。網上這個技術點的資料真心不多,後來於部落格園找到一篇博文,但是那個

基於WPF+OneNote+Oracle的中文圖片識別系統階段總結關於OneNote入庫處理以及稽核

namespace OnenoteOCRDemo { /// <summary> /// falg.xaml 的互動邏輯 /// </summary> public partial class falg : Window {

基於WPF+OneNote+Oracle的中文圖片識別系統階段總結基於OneNote難點突破批量識別

【小記】:大膽嘗試才能突破,某個中醫藥大學有一批圖片需要處理(ORC),然後進行資料探勘。之前沒有接觸過ORC這個東西,但是還是應允了。在網上搜索一番,關於中文圖片識別,最終敲定為基於微軟的OneNote,其識別率相對較高。網上這個技術點的資料真心不多,後來於部落格園找到一篇博文,但是那個

《Real-Time Rendering 3rd》提煉總結完結系列合集電子書PDF下載&實時渲染知識網路圖譜&新系列預告

毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科

001-安裝及快速入門基於純antd的基本項目搭建

也會 nod 幫助 控制 element ole 全局變量 當前日期 BE 一、安裝使用 1.1、安裝 推薦使用 npm 或 yarn 的方式進行開發 npm install antd --save yarn add antd 1.2、瀏覽器引入

解決用navicate遠端連線資料庫出現1045 access denied for user 'root'@'localhost' using password yes

  在mysql命令列中執行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456XXX');  GRANT ALL PRIVILEGES 

《Real-Time Rendering 3rd》 提煉總結(九) 第十章 · 遊戲開發中基於影象的渲染技術總結

毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科

專案總結ForEach時出錯報"集合已修改;可能無法執行列舉操作"

背景 選中全選時,把ListView對應的項選中 程式碼 m_PickServer.ForEach(delegate(string n) { foreach (ListViewIt

電信計費系統專案實戰基礎---解析XML檔案

寫在前面 這一篇介紹如何解析xml檔案,因專案中的角色管理有個許可權列表 為了方便管理,我們用privileges.xml儲存許可權操作資訊。 解析xml檔案 用privileges.xml儲存許可權操作資訊的程式碼如下: <?xml

電信計費系統專案實戰介紹

#寫在前面 技術源於分享,本篇我主要介紹一下達內的一個web專案:電信計費系統,它是基於struts2+jdbc+oracle實現的,當時完成它感覺並沒有完完全全弄透,不過現在一看,咋這麼簡單呢(嘿嘿!

Java並發編程二十並發新特性—Lock鎖條件變量(含代碼)

ets exc n) 否則 max 長時間 info trace space 簡單使用Lock鎖 Java 5中引入了新的鎖機制——Java.util.concurrent.locks中的顯式的互斥鎖:Lock接口,它提供了比synchronized更加廣泛的鎖

Java並發編程十八第五中volatile意外問題的正確分析解答(含代碼)

深入 規則 rup lis con method 執行 change .text 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17382679 在《Java並發編程學習筆記之五:volatile變量修

Java並發編程十六深入Java內存模型——happen-before規則及其對DCL的分析(含代碼)

無需 bit 對象引用 說了 final 緩存 機器 通過 round 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17348313 happen—before規則介紹 Java語言中有一個“先行發生

Java並發編程十二線程間通信中notifyAll造成的早期通知問題(含代碼)

data light lan 添加項 article util tool 元素 seconds 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17229601 如果線程在等待時接到通知,但線程等待的條件

Java並發編程十九並發新特性—Executor框架與線程池(含代碼)

接口類 容易 20px 了解 大小 執行c 生命周期 schedule p s Executor框架簡介 在Java 5之後,並發編程引入了一堆新的啟動、調度和管理線程的API。Executor框架便是Java 5中引入的,其內部使用了線程池機制,它在java.

Java並發編程十一線程間通信中notify通知的遺漏(含代碼)

key wait title net fill article 返回 0ms 註意 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17228213 notify通知的遺漏很容易理解,即threadA還沒