C# 实现DB文件的导入导出功能
2014-11-04 10:30
357 查看
1. DB文件的导出
2. DB文件的导入
// 获取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); } }
相关文章推荐
- PHP 使用PHPExcel实现文件导入与导出功能
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- C# 文件上传下载(Excel导入,多线程下载)功能的实现代码
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- c# Winform程序实现多sheet的Excel文件导入与导出
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解 3ff8
- 在 Laravel 使用扩展包maatwebsite/excel 实现 Excel/CSV 文件导入导出功能
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 编写一个通讯录,功能与以前的诺基亚手机一样,可以通过键盘进行箭头的移动,回车进入选项,用“W”键代表手机手机左键,“backspace”键代表返回上一级。能够实现基本的人性化的增删改查及文件的导入导出
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- SpringMVC/SpringBoot使用easypoi实现Excel文件导入导出功能实现
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能(转)
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能