TeraData数据库,将Excel文件存入数据库并取出打开
TeraData数据库 字段类型 :BLOB
错误提示:LOBs are not allowed to be selected in Record or Indicator modes.
控制面板——管理工具——ODBC配置:Options
将Excel文件存入:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 try 2 { 3 OpenFileDialog open = new OpenFileDialog();//创建OpenFileDialog实例 4 open.Filter = "Excel文件|*.xls"; 5 open.Multiselect = false; //每次只能选择一个文件 6 if (open.ShowDialog() == DialogResult.OK) 7 { 8 System.IO.FileInfo fi = new System.IO.FileInfo(open.FileName); 9 System.IO.FileStream fs = fi.OpenRead();10 byte[] bytes = new byte[fs.Length]; 11 12 fs.Read(bytes, 0, Convert.ToInt32(fs.Length));13 fs.Close();14 //压 缩 Byte15 bytes = Compress(bytes);
16 //也可以将Byte[]转化为String 这个看个人需求 转String后 容量会变大,不推荐 17 string str = RetrieveObject(bytes);18 //将数据存入数据库 19 //DataHelper.DataInstance.WatConfig.InsertFile("F8", str);
存入数据库方法: public int InsertFile(string fabCode, byte[] bytes){............}20 }21 22 }23 catch (SystemException ex)24 { 25 ExceptionBase.ExceptionHandler(ex);26 }
从数据库中取出文件:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 DataTable dt = DataHelper.DataInstance.WatConfig.QueryFile();
//byte[] by = GetBinaryFormat(str); //用String时 可以转Byte【】
byte[] by = (byte[])dt.Rows[0][1];3 byte[] bytes = Decompress(by); 5 FileStream stream = new FileStream(@"C:\Users\......\Desktop\6.xls", FileMode.CreateNew);6 BinaryWriter bw = new BinaryWriter(stream);7 bw.Write(bytes, 0, bytes.Length);8 bw.Close();9 fs.Close();
压缩/解压缩、序列化/反序列化
![](/assets/blank.gif)
![](/assets/blank.gif)
1 /// <summary> 2 /// 压缩数据 3 /// </summary> 4 /// <param name="data"></param> 5 /// <returns></returns> 6 public static byte[] Compress(byte[] data) 7 { 8 byte[] bytes; 9 MemoryStream ms = new MemoryStream();10 GZipStream stream = new GZipStream(ms, CompressionMode.Compress, true);11 stream.Write(data, 0, data.Length);12 stream.Close();13 stream.Dispose();14 //必须把stream流关闭才能返回ms流数据,不然数据会不完整15 bytes = ms.ToArray();16 ms.Close();17 ms.Dispose();18 return bytes;19 }20 21 /// <summary>22 /// 解压数据23 /// </summary>24 /// <param name="data"></param>25 /// <returns></returns>26 public static byte[] Decompress(byte[] data)27 {28 byte[] bytes;29 MemoryStream ms = new MemoryStream();30 ms.Write(data, 0, data.Length);31 ms.Position = 0;32 GZipStream stream = new GZipStream(ms, CompressionMode.Decompress, true);33 byte[] buffer = new byte[1024];34 MemoryStream temp = new MemoryStream();35 int read = stream.Read(buffer, 0, buffer.Length);36 while (read > 0)37 {38 temp.Write(buffer, 0, read);39 read = stream.Read(buffer, 0, buffer.Length);40 }41 //必须把stream流关闭才能返回ms流数据,不然数据会不完整42 stream.Close();43 stream.Dispose();44 ms.Close();45 ms.Dispose();46 bytes = temp.ToArray();47 temp.Close();48 temp.Dispose();49 return bytes;50 }51 52 /// <summary>53 /// 将objec格式化成字节数组byte[],并压缩54 /// </summary>55 /// <param name="dsOriginal">object对象</param>56 /// <returns>字节数组</returns>57 public static byte[] GetBinaryFormat(string dsOriginal)58 {
IFormatter formatter = new BinaryFormatter();
byte[] byt = Convert.FromBase64String(dsOriginal);
object obj = null;
using (Stream stream = new MemoryStream(byt, 0, byt.Length))
{
obj = formatter.Deserialize(stream);
}
byte[] by = (byte[])obj;
return by;
67 }68 69 /// <summary>70 /// 将字节数组解压后反序列化成object对象71 /// </summary>72 /// <param name="binaryData">字节数组</param>73 /// <returns>object对象</returns>74 public static string RetrieveObject(byte[] binaryData)75 {76 IFormatter formatter = new BinaryFormatter();77 string result = string.Empty;78 using (MemoryStream stream = new MemoryStream())79 {80 formatter.Serialize(stream, binaryData);81 byte[] byt = new byte[stream.Length];82 byt = stream.ToArray();83 result = Convert.ToBase64String(byt);84 stream.Flush();85 }86 return result;87 }
转载于:https://www.cnblogs.com/ywp0212/archive/2012/02/17/2355541.html
TeraData数据库,将Excel文件存入数据库并取出打开相关推荐
- JDBC进阶:调用数据库,将文件或其他字节文件存入数据库,再从数据库取出写回硬盘
package star.july.practise; /*** JDBC进阶:调用数据库,将文件或其他字节文件存入数据库,* 再从数据库取出写回硬盘*/ import java.io.File; i ...
- excel 文件导入数据库(java)
excel文件导入数据库! 先上传,后解析,再对sql建表,插入数据,导入完成,删除上传的临时表! 谢谢指点! 1.导入jar jxl.jar poi-poi-2.5.1jar poi-contrib ...
- 把服务器sql数据库导出excel文件,将mysql数据库数据以Excel文件的形式导出
最近在工作中,领导让从数据库中导出一些数据并存放到Excel表格中,网上有许多教程,下面是我总结的其中俩种方法. 从数据库管理工具中导出(navicat) 在navicat导出数据导Excel中还是比 ...
- java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...
Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...
- ITPUB老帖子:小招技巧3: EXCEL文件导入数据库
小招技巧3: EXCEL文件导入数据库 (发贴日期:2003.03.11) EXCEL文件导入数据库的简便方法 嗨! 这个问题你可能有很多好方法. 不过多学一种不是坏事. 你用的方法可能是: 1. 存 ...
- springboot实现上传Excel文件与数据库中的数据进行比对
springboot实现上传Excel文件与数据库中的数据进行比对 首先先写好文件上传的接口,然后上传需要比对数据的文件,在点击数据比对 下面是一部分数据比对的代码: 后端controller部分: ...
- excel 文件中新建的无法打开
excel 文件中新建的无法打开 一个很细节的问题: 今天突然发现在文件夹新建的excel无法打开了,而已经存在的excel可以打开 最后发现是因为注册表中,excel的模板文件被wps更改了. 解决 ...
- EXCEL文件已损坏,无法打开,解决办法
最近更新的新版本的office,发现容易出现安全问题,常常会遇到Excel文件已损坏,无法打开的问题,这不是我们的文件损坏了,就起原因是office的保护机制,下面推荐两个方法解决,并不是修复我们的文 ...
- 如何将PDF如何存入MySQL_如何保存PDF、Word和Excel文件到数据库中
在项目中,有时候我们很需要把PDF.Word和Excel文档等等上传到数据库,以便日后使用.今天这篇文章向大家讲解如何将这些文件保存到数据库的. 详细步骤 第一步:打开数据库,单击新建查询,创建一个名 ...
最新文章
- 映射date类型_JPA 日历映射到日期示例
- 给互联网巨头“搬砖”的人
- 数据库收缩数据文件的尝试(二)(r11笔记第9天)
- java pem 私钥_将PEM导入Java密钥库
- C++和服务器交互的几个文件代码
- 【待继续研究】如何运用机器学习技术构建可行的反欺诈检测方案?
- 面向对象VS面向过程
- VBA之六--EXCEL VBA两则
- [转]itertools --- 为高效循环而创建迭代器的函数
- Waymo无人驾驶出租车上线:科技感爆棚,还比Uber便宜
- win10安装vbox没有虚拟网卡_消失的虚拟网卡
- iOS 截屏 长图 拼图
- mybatis的resultMap与association等联合查询,多个参数无法传递
- 赛宁网安助力中国移动打造国内领先云安全能力
- ps2021神经网络滤镜不能用,ps2021没法用神经元滤镜
- 使用 Hexo 快速免费搭建个人网站
- pytorch dataset自定义_PyTorch 系列 | 数据加载和预处理教程
- 理解AdaBoost算法
- 对数据库某个字段进行去重
- 「前端」webp图片适配流量优化
热门文章
- Python —— 字符串常用操作
- 深度学习的实用层面 —— 1.2 偏差/方差
- excite-punastranvirtual.lab振动噪声仿真
- 数据竞赛入门-金融风控(贷款违约预测)一、赛题介绍
- Personal Rank——个性化推荐召回算法python
- 天正暖通天圆地方在哪_2020位于太白山景区海拔3511米天圆地方景点就变成了很多人望而却步的地方_天圆地方-评论-去哪儿攻略...
- android文本输入框焦点事件,popupwindow和外部输入EditText控件焦点问题!
- 华为鸿蒙HarmonyOS,HDC2020,华为鸿蒙HarmonyOS会带来哪些不一样的体验?
- c语言字母随机初始值,C语言的未初始化的数组的值为什么是随机的
- pythonwindows程序开发课程_Windows深入编程全集视频课程(七日成蝶)