【小记】:最近基于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("数据库保存失败!!");
}
}
附件:配置文档
【使用介绍】
一 本系统采用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局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
-
【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
-
部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了
部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了 安大虎 momenta 中台开发工程师 6 人赞同了该文章 就目前的形势看,一家公司的运维体系不承载在 Do ...
-
多租户实现之基于Mybatis,Mycat的共享数据库,共享数据架构
前言 SaaS模式是什么? 传统的软件模式是在开发出软件产品后,需要去客户现场进行实施,通常部署在局域网,这样开发.部署及维护的成本都是比较高的. 现在随着云服务技术的蓬勃发展,就出现了SaaS模式. ...
-
项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXi ...
-
如何基于Winform开发框架或混合框架基础上进行项目的快速开发
在开发项目的时候,我们为了提高速度和质量,往往不是白手起家,需要基于一定的基础上进行项目的快速开发,这样可以利用整个框架的生态基础模块,以及成熟统一的开发方式,可以极大提高我们开发的效率.本篇随笔就是 ...
-
基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现
关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...
-
在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
-
基于JQuery+JSP的无数据库无刷新多人在线聊天室
JQuery是一款非常强大的javascript插件,本文就针对Ajax前台和JSP后台来实现一个无刷新的多人在线聊天室,该实现的数据全部存储在服务端内存里,没有用到数据库,本文会提供所有源程序,需要 ...
随机推荐
-
Microsoft Windows* SDK May 2010 或较新版本(兼容 2010 年 6 月 DirectX SDK)GPU Detect
原文链接 下载代码样本 特性/描述 日期: 2016 年 5 月 5 日 GPU Detect 是一种简短的示例,演示了检测系统中主要显卡硬件(包括第六代智能英特尔® 酷睿™ 处理器产品家族)的方式. ...
-
C#多线程学习
一.线程的定义 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程 ...
-
【linux】VMware12.0安装
问题1:安装虚拟机时出现The Microsoft Runtime DLL installer failed to complete 解决: 重新安装,安装失败时不要点击结束,在开始“运行”出输入%t ...
-
射击比赛 (POJ 1719) 题解
[问题描述] 我们假设射击的目标是一个由R*C(2≤R≤C≤ 1000)个小方格组成的矩形网格.网格中每一列恰有2个白色的小方格和R-2个黑色的小方格.定义网格的行从顶至底编号为1~R,列从左至右编号 ...
-
ios 后台模式
1.在后台可以继续播放音频 To play sound in the background, make sure to add the following to the Info.plist file ...
-
elasticsearch基础概念
接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒). 集群(clu ...
-
RS485转USB插电脑上通讯不上
在确定没有其他问题时,基本可以确定是干扰问题,换个24V电源试试,不要用原来的线 485接口确定,好坏通过两个相反对接,发送信息,两边一致,就可以
-
16.xml
一.xml 1.什么是XML:是一种可扩展的标记语言,所有标记都可以自定义,常用来做配置文件和数据传输的载体2.语法:标签(元素):<元素名> 值 </元素名>属性:在元素中 ...
-
SQL 显示表名显示列名
显示表名:show 表名: 显示列(Field)名:show columns from 表名:
-
自适应PC端网页制作使用REM
做一个PC端的网页,设计图是1920X1080的. 要在常见屏上显示正常(比例正确可) 1280X720 1366X768 1440X900 1920X1080 使用了几种办法 1.内容在一屏内显示的 ...