/*自定义导航栏*/

【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

篇一:WinForm开发总体概述与技术实现

篇二:WinForm开发扇形图统计和Excel数据导出

篇三: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和统计图的介绍,并推荐几篇相关文件。整体采用分割法进行分析。先介绍思路和整体效果。然后进行知识点梳理总结,最后汇总。这样形成知识分离化,随后需要直接使用,也帮助需要之人。

 

 

posted @ 2014-08-27 12:17  伏草惟存  阅读(16483)  评论(17编辑  收藏  举报