【基於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還沒