//将最低生活保障数据Excel格式批量导入数据库中 满足审计部门需要

//试用请登录http://121.18.78.216/

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MyQuery.Utils;
using System.IO;
using MyQuery.DAL;

namespace dbsj
{
    public partial class Form1 : Form
    {
        string[] tables = new string[] { "SJ_DB_JTXX_河北保定市", "SJ_DB_FFMX_河北保定市" };
        string[] tpaths = new string[] { "JTXX", "FFMX" };
        int[] tlengths = new int[] { 22, 10 };
        string[] tsqls = new string[] { @"CREATE TABLE [{0}]([XZQHDM] varchar(6), [JTBH] varchar(64), [LB] varchar(1), [XM_HZ] varchar(64), [SFZH_HZ] varchar(20), [DBZH] varchar(64), [YHZH] varchar(64), [XM_JTCY1] varchar(64), [SFZH _JTCY1] varchar(20), [XM_JTCY2] varchar(64), [SFZH _JTCY2] varchar(20), [XM_JTCY3] varchar(64), [SFZH _JTCY3] varchar(20), [XM_JTCY4] varchar(64), [SFZH _JTCY4] varchar(20), [XM_JTCY5] varchar(64), [SFZH _JTCY5] varchar(20), [XM_JTCY6] varchar(64), [SFZH _JTCY6] varchar(20), [BZRK] int, [YSR] decimal(38,6)) ON [PRIMARY]", @"CREATE TABLE [{0}]([XZQHDM] varchar(6), [JTBH] varchar(64), [XM_HZ] varchar(64), [SFZH_HZ] varchar(20), [DBZH] varchar(64), [YHZH] varchar(64), [FFSJ] varchar(6), [DBJ] decimal(38,6), [BTJE_QT] decimal(38,6)) ON [PRIMARY]" };
        string[] isqls = new string[] { @"insert into [{0}] values('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}' , '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}' , '{17}' , '{18}' , '{19}' , {20} , {21} )", @"insert into [{0}] values('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', {8}, {9})" };
        string[,] tfields = new string[,]{ {"XZQHDM",
                           "JTBH",
                           "LB",
                           "XM_HZ",
                           "SFZH_HZ",
                           "DBZH",
                           "YHZH",
                           "XM_JTCY1",
                           "SFZH_JTCY1",
                           "XM_JTCY2",
                           "SFZH_JTCY2",
                           "XM_JTCY3",
                           "SFZH_JTCY3",
                           "XM_JTCY4",
                           "SFZH_JTCY4",
                           "XM_JTCY5",
                           "SFZH_JTCY5",
                           "XM_JTCY6",
                           "SFZH_JTCY6",
                           "BZRS",
                           "YSR"},
                                 {"XZQHDB",
                           "JTBH",
                           "XM_HZ",
                           "SFZH_HZ",
                           "DBZH",
                           "YHZH",
                           "FFSJ",
                           "DBJ",
                           "BTJE_QT",
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null,
                                 null}};

public Form1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, EventArgs e)
        {
            this.richTextBox1.Clear();
            string root = WebHelper.GetRootServerPath();
            if (!Directory.Exists(root + textBox2.Text))
            {
                MessageBox.Show(textBox2.Text + "不在程序目录中");
                return;
            }
            for (int t = 0; t < 2; t++)
            {
                if (!Directory.Exists(root + textBox2.Text + "\\" + tpaths[t]))
                {
                    MessageBox.Show(tpaths[t] + "不在" + textBox2.Text + "目录中");
                }

Dao data = new Dao(DBType.Sql2005, textBox1.Text);
                //创建表
                string tableName = tables[t] + textBox2.Text;
                if (!"1".Equals(data.GetScalar("SELECT count(*) FROM sysobjects WHERE id = OBJECT_ID(N'[" + tableName + "]') AND type in (N'U')")))
                {
                    data.SqlExecute(String.Format(tsqls[t], tableName));
                }
                DirectoryInfo dInfo = new DirectoryInfo(root + textBox2.Text + "\\" + tpaths[t]);
                foreach (FileInfo file in dInfo.GetFiles())
                {
                    //插入数据
                    DataSet ds = ExcelHelper.GetDataFromExcel(file.FullName, true);
                    if (ds == null || ds.Tables.Count == 0)
                    {
                        this.richTextBox1.AppendText(Environment.NewLine + file.Name + "没有数据" + Environment.NewLine);
                    }
                    else
                    {
                        string sql = "";
                        try
                        {
                            data.TransactionBegin();
                            for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
                            {
                                DataRow dr = ds.Tables[0].Rows[i];
                                if (!DataHelper.IsNullOrEmpty(dr[0]))
                                {
                                    if (t == 0)
                                    {
                                        if ("1".Equals(data.GetScalar("select count(*) from " + tableName + " where " + tfields[t, 1] + "='" + dr[1].ToString() + "'")))
                                        {
                                            //存在则跳过
                                            continue;
                                        }
                                    }
                                    object[] objs = new object[tlengths[t]];
                                    objs[0] = tableName;
                                    for (int j = 1; j < tlengths[t]; j++)
                                    {
                                        objs[j] = DataHelper.GetValue(dr, tfields[t, j - 1]);
                                    }
                                    for (int j = tlengths[t] - 2; j < tlengths[t]; j++)
                                    {
                                        if (DataHelper.IsNullOrEmpty(objs[j]))
                                        {
                                            objs[j] = 0;
                                        }
                                    }
                                    sql = String.Format(isqls[t], objs);
                                    data.SqlExecute(sql);
                                }
                            }
                            data.TransactionCommit();
                        }
                        catch (Exception ex)
                        {
                            data.TransactionRollback();
                            this.richTextBox1.AppendText(Environment.NewLine + file.Name + "错误:" + ex.Message + ";" + sql + Environment.NewLine);
                            continue;
                        }
                        file.Delete();
                        this.richTextBox1.AppendText(file.Name + "完成" + Environment.NewLine);
                    }
                }
            }
        }
    }

}

如需要请联系:

贾世义  QQ:jsyhello@gmail.com(914734554)    电话:15832292227

最低生活保障数据采集(民政部门)Excel到数据库满足审计部门需要 源代码相关推荐

  1. 将Excel文件数据库导入SQL Server

    将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server openFileDialog = n ...

  2. Excel向数据库插入数据和数据库向Excel导出数据

    为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 ...

  3. java通过jxl处理execl空行_jxl操作Excel导入数据库之空行的处理

    jxl因其快速小巧受到大家的欢迎,但是jxl还是有许多不尽如人意的地方. 本文旨在解决jxl读取excel数据时无法自动取掉空行的问题,其实就是添加一个方法. ? //返回去掉空行的记录数 priva ...

  4. php读取excel中数据库,ThinkPHP 框架实现的读取excel导入数据库操作示例

    本文实例讲述了ThinkPHP 框架实现的读取excel导入数据库操作.分享给大家供大家参考,具体如下: 入口文件中: require_once VENDOR_PATH.'PHPExcel/PHPEx ...

  5. 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.

    当excel 导入数据库的字段大于255时,把第一行的字段加长超过255. 因为Excel驱动程序在进行导入操作时会预先采样部分数据判断字段的数据类型,所以对采样数据结果作的判断同全部数据的数据类型有 ...

  6. excel导入数据库的简单方法

    一个简单的方法将excel导入数据库 private void Plan_Import_Execl()         {             OpenFileDialog fileDialog ...

  7. Java实现Excel导入数据库,数据库中的数据导入到Excel

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1. ...

  8. php把路由放在数据库,PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法

    PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法 本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入 ...

  9. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  10. excel文档查询服务器,excel服务器数据库查询语句

    excel服务器数据库查询语句 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...

最新文章

  1. IIS怎么设置本地域名解析(本地域名测试配置)
  2. 信息系统项目管理师优秀论文:项目范围管理
  3. InnoDB和MyISAM有哪些不同
  4. 有道云笔记到简书的迁移工具
  5. Visual Studio Code设置断点时出现Unverified breakpoint该咋办
  6. python游戏猫咪藏在哪个房间_tes体系风格已经定型,EZ加猫咪似乎成唯一解,在藏还是真没了?...
  7. 学习笔记之Java程序设计实用教程
  8. 字符动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图
  9. java listview颜色_[摘]android listview选中某一行,成选中状态颜色高亮显示
  10. POJ-1904-King's Quest(强连通图)
  11. Java线程池execute()方法源码解析
  12. angularjs1.x版本,父子组件之间的双向绑定
  13. mybatis --XML 映射配置文件
  14. Excel在spring cloud项目中乱码
  15. 单片机的c语言程序设计与应用课后答案,单片机的C语言程序设计与应用——基于Proteus仿真(第3版)...
  16. win10安装打印机操作无法完成0x0000007e找不到指定模块
  17. java公路赛_为什么Java公路车总被黑?
  18. 不会吧不会吧,不会有人连线程池都没听说过吧
  19. 架构师日常-团队管理
  20. android阿拉伯数字1 to一,英文数字的阿拉伯数字android

热门文章

  1. 黑客帝国中的代码雨写法
  2. RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (三、无线温湿度传感器 之 I2C通讯)
  3. 复旦大学数学学院高等代数历届期中考试大题精选之一(08级--12级)
  4. 主角把异能开发计算机,高等数学上下
  5. 读后感 《大话数据结构》
  6. 时间戳转化为YYYY-MM-DD-XX-MM-UU日期格式
  7. 复赛全省第一,决赛发挥失误,他是如何挽回局势,保送北大的?
  8. 2022年3月26日 张量-外积
  9. ftp的上传与单文件下载
  10. Javascript特效代码大全(420个)(转)