C# 实现DB文件的导入导出功能

1.     DB文件的导出

private void InsertDB(DataTable dt, string FileName)
        {
            try
            {
                string userIds = string.Empty;
                string[] str = ccbUserName.Text.Split(‘,‘);
                for (int s = 0; s < str.Length; s++)
                {
                    userIds += GetUserId(str[s].Trim()) + "‘,";
                }
                userIds = userIds.Substring(0, userIds.Length - 1);
                if (string.IsNullOrEmpty(userIds))
                {return;
                }

                SqliteBaseClass sqlite = new SqliteBaseClass(FileName);
                try
                {
                    sqlite.creatDataBase();//创建数据库
                    sqlite.SqliteConn = new System.Data.SQLite.SQLiteConnection(sqlite.StrConntion);
                    sqlite.SqliteConn.Open();
                    //创建表
                    sqlite.creatDataBaseTable("CREATE TABLE GpsInfo ([id] CHAR(32),[gpsTime] DATETIME,[Lon] DOUBLE,[Lat] DOUBLE,[speed] DOUBLE,[direction] DOUBLE,[seaLevel] DOUBLE,[uploaded] INT,[TotalLiCheng] nvarchar(50))");
                    sqlite.creatDataBaseTable("CREATE TABLE SysParamters ([param] NVARCHAR(50) NOT NULL,[pValue] NVARCHAR(150))");
                    sqlite.Strtablename = "SysParamters";
                    //插入gps数据
                    sqlite.Strtablename = "GpsInfo";
                    string fields = "id,gpsTime,lon,lat,speed,direction,sealevel,TotalLiCheng";//字段列表
                    string values = string.Empty;//数据列表
                    uiProgressBar1.Maximum = dt.Rows.Count;
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        //把数组数据转换为,分割
                        string[] strs = dt.Rows[i].ItemArray.Select(w => w.ToString()).ToArray<string>();
                        //时间类型存入db时要转换一下,不然读取时报错
                        DateTime date = Convert.ToDateTime(dt.Rows[i]["时间"]);
                        values = "‘" + strs[0] + "‘,‘" + date.ToString("s") + "‘,‘" + string.Join("‘,‘", strs, 3, 6) + "‘";
                        sqlite.insertFieldData(fields, values);//插入数据
                        uiProgressBar1.Value = i;
                        System.Windows.Forms.Application.DoEvents();
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    if (sqlite!=null&&sqlite.SqliteConn!=null)
                    {
                        sqlite.SqliteConn.Close();
                    }
                }
                MsgBoxShow.ShowInformation("导出成功!");
            }
            catch (Exception ex)
            {
                MsgBoxShow.ShowWarning("导出错误:" + ex.Message);
            }
        }

2.     DB文件的导入

// 获取DB数据

        private void GetDBData(object sender, WaitWindowEventArgs e)
        {
            try
            {
                if (e.Arguments.Count > 0)
                {
                    //创建sqlite操作
                    SqliteBaseClass sqlite = new SqliteBaseClass(e.Arguments[0].ToString());
                    sqlite.SqliteConn = new System.Data.SQLite.SQLiteConnection(sqlite.StrConntion);
                    sqlite.SqliteConn.Open();
                    //查询格式是否正确
                    string strgps = "SELECT id,gpsTime,Lon,Lat,speed,direction,TotalLiCheng,seaLevel FROM GpsInfo Limit 1";
                    string strsys = "SELECT param,pValue FROM SysParamters";
                    DataSet gpsSet = sqlite.getDataSetQueryContSql(strgps);
                    DataSet SysSet = sqlite.getDataSetQueryContSql(strsys);
                    if (gpsSet == null || SysSet == null || gpsSet.Tables[0].Rows.Count <= 0)
                    {
                        MsgBoxShow.ShowInformation("DB文件格式错误或者不存在数据");
                        return;
                    }

                    //获取数据
                    string strGpsInfo = "SELECT id as 巡护人员,gpsTime as 时间,Lon as 经度,Lat as 纬度,speed as 速度,direction as 方向,"
                        + " TotalLiCheng as 总里程,seaLevel as 海拔 FROM GpsInfo  ORDER BY gpsTime";
                    DataTable GpsInfoDT = sqlite.getDataSetQueryContSql(strGpsInfo).Tables[0];

                    //计算总里程
                    e.Result = CalculateTotalLiCheng(GpsInfoDT);
                }
            }
            catch (Exception ex)
            {
                MsgBoxShow.ShowWarning("打开DB文件错误:" + ex.Message);
            }
        }
时间: 2024-10-09 11:06:31

C# 实现DB文件的导入导出功能的相关文章

Laravel Excel 实现 Excel-CSV 文件导入导出功能

Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https://github.com/Maatwebsite/Laravel-Excel 安装 我们就按照GIthub上的readme文件进行安装吧. composer require "maatwebsite/excel:~2.1.0" 在 config/app.php 中注册服务提供者到 provid

java实现文件批量导入导出实例(兼容xls,xlsx)

1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出.另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了. 2.POI使用详解 2.1 什么是Apache POI? Apache POI是Apache软件基金会的开放源码函式库,

Windows Azure 功能再扩充-SQL Database开始支持导入导出功能

本文将介绍 SQL Database 新增的导入导出功能,帮助您可以透过数据层应用程序把数据库导入到 SQL Database,或是将 SQL Database 导出至 Cloud Storage. [背景说明] 在 Facebook 上看到 Eric Shangkuan 分享 ScottGu 发表的文章,文中提到 Windows Azure Platform Management Portal 的再次扩充许多新功能,其中包含下列功能: Service Bus Management and Mo

SSM excel文件的导入导出

对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/>标签即可,通过后台去完成 ,不可用ajax去写导出,ajax请求只是个"字符型"的请求,即请求的内容是以文本类型存放的. 文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件. 当获取前台导入这个命令后,会通过Mybati

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能(转)

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录

实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多都是以json数据填充的.在导入excel填充json数据到页面时,真的让我差点吐血了.在做这个导入导出的时候,那一个礼拜都是黑暗的. 好了,废话不多说了,我今天就给大家展示这个两个功能的核心点,excel生成json数据和json数据生成excel文件. 一:从上传文件到服务器,后台java解析,

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录

基于ajaxFileUpload和Java IO的可视化项目模板导入导出功能

目前部门在做的(大)数据可视化项目中增加了一个模板功能,经过一个星期的摸索,总算是打包提交测试通过了.这里记下一些技术要点,温故知新. 1,模板文件的格式设计 模板导出和导入的文件为一个“模板名称.zip”的压缩包.包内含有一个temp.json文件和若干资源文件(图片,视频,MP3音乐等). temp.json文件格式: { “content” : ”…”, //模板内容 “thumbnail” : “…”, //模板缩略图 “name” : “…”, //模板名称 “resource” :

laravel框架excel 的导入导出功能

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel. 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录下使用Co