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文档等等上传到数据库,以便日后使用.今天这篇文章向大家讲解如何将这些文件保存到数据库的. 详细步骤 第一步:打开数据库,单击新建查询,创建一个名 ...
最新文章
- Python三十年技术演变史
- 使用iOS原生sqlite3框架对sqlite数据库进行操作
- 使用vm server 虚拟机上安装oracle-rac 共享磁盘错误解决
- JDK9的新特性:String压缩和字符编码
- Inside Class Loaders
- 95-264-040-源码-重启恢复-本地恢复
- [zz]世界第一只计算机bug和Debug
- python序列类型唯一的映射类型_什么是python中唯一的映射类型
- html圆形圆心坐标,圆心坐标公式
- java oracle驱动_oracle11g jdbc驱动(jdbc最新驱动)
- xmpp 即时通讯协议研究
- react jsoneditor 的学习使用
- 视觉检测系统设计过程中遇到的问题
- Kubernetes(七)Pod进阶之Downward API和PodPreset
- 桌面计算机图标怎样优化,桌面图标怎么变小,详细教您电脑桌面图标的太大怎么调小...
- 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
- nginx常用配置笔记
- NOAA气象监测数据下载(可下载最新及每日气象数据)
- Python 读书笔记(1)
- CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
热门文章
- Tensorflow入门--图与会话
- c语言模拟试题快速排序,快速排序(东软喜欢考类似的算法填空题,又如堆排序的算法等)...
- java version 和javac版本不一致_windows安裝多個版本的jdk,解決java-version和javac-version版本不一致的問題...
- MyBatis框架 基本配置及运行原理
- ibm java英语面试_IBMJava英文面试题(附参考答案)
- php属性赋值吗,php – 设置类中属性的默认值
- java执行python路径_如何在Python中获取当前执行文件的路径?
- linux下执行java_Linux下运行java项目
- php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
- mysql5.7bka_mysql5.7的sql优化