SQL数据库通用数据导出工具(一)

这个星期有点疯魔了,本想编个小工具把单位OA平台的人员数据和单位数据导出来算数的,但同事们要求多多,最后弄了个通用的工具出来,开发过程给大家分享一下。

老规矩上图

工具共两窗体,一个是登录界面,一个是工作界面

登录界面


工作界面


今天这篇博文先讲登录界面,UI控件一看就明白就不多说了,实现功能讲讲。

从界面可以看出这工具要记录计算机的一些独有信息到一个文件,并读取文件进行判断是否要自动登录,所以要在程序运行目录下建一个Res的文件夹,里面有个Config.xml文件用来保存数据

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Config>
    <Title>惠州×××数据导出工具</Title>
    <Ico>AppIco</Ico>
    <SelectTop>30</SelectTop>
  </Config>
  <!--以下配置由工具自动生成,请勿进行修改-->
</Root>
这部分需要手工写,可以看到还有个图标设置,还要自己弄个ico到Res文件夹内,改名为AppIco.ico,如果没有,不会出错,不过会显示默认图标而已。

好,基本结构就这样了,用老习惯,把一些通用的代码写到Dll中,项目就有了个DataOperation这个类库,纯自己写的。

先Program.cs这个文件里面弄点手脚,读取Config.xml文件,满足自动登录条件就直接打开工作界面,不满足就打开登录界面。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Xml.Linq;

namespace OADataExportTool
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            try
            {
                //处理未捕获的异常   
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
                //处理UI线程异常   
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                //处理非UI线程异常   
                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                //检查工具配套的配置文件及DLL文件是否完整,不完整直接退出
                if (!File.Exists(@"Res\Config.xml") || !File.Exists(@"Res\AppIco.ico"))
                {
                    MessageBox.Show("导出工具不完整,部分组件丢失。", "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    DataOperation.Xml.SetRunFile(null);
                    Environment.Exit(0);                
                }
                //检查是否满足自动登录条件,不满足就显示登录窗体
                string Code = DataOperation.Machine.GetCode();
                if (Code != null)//检查获取机器码是否成功
                {
                    XElement XE = XElement.Load(@"Res\Config.xml");
                    var FindXE = XE.Elements("Machine").Where(P => P.Attribute("Code").Value == Code);
                    if (FindXE.Count() > 0)//检查是否可以自动登录
                    {
                        string ServerIP = FindXE.First().Element("ServerIP").Value;
                        string Uid = FindXE.First().Element("Uid").Value;
                        string Pwd = DataOperation.Encryption.DES_Decryp(FindXE.First().Element("Pwd").Value, Uid);
                        bool AutoLogin = Convert.ToBoolean(FindXE.First().Element("AutoLogin").Value);
                        if (AutoLogin)
                        {
                            if (DataOperation.Sql.TryConnet("master", ServerIP, Uid, Pwd))//尝试连接服务器,连接成功则继续
                            {
                                DataOperation.Xml.SetRunFile("Server=" + ServerIP + ";uid=" + Uid + ";pwd=" + Pwd + ";");
                                Application.Run(new SelectData());
                            }
                            else
                    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值