TeraData数据库 字段类型 :BLOB

错误提示:LOBs are not allowed to be selected in Record or Indicator modes.

控制面板——管理工具——ODBC配置:Options

将Excel文件存入:

保存数据

 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             }

从数据库中取出文件:

读取数据

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();

压缩/解压缩、序列化/反序列化

View Code

 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文件存入数据库并取出打开相关推荐

  1. JDBC进阶:调用数据库,将文件或其他字节文件存入数据库,再从数据库取出写回硬盘

    package star.july.practise; /*** JDBC进阶:调用数据库,将文件或其他字节文件存入数据库,* 再从数据库取出写回硬盘*/ import java.io.File; i ...

  2. excel 文件导入数据库(java)

    excel文件导入数据库! 先上传,后解析,再对sql建表,插入数据,导入完成,删除上传的临时表! 谢谢指点! 1.导入jar jxl.jar poi-poi-2.5.1jar poi-contrib ...

  3. 把服务器sql数据库导出excel文件,将mysql数据库数据以Excel文件的形式导出

    最近在工作中,领导让从数据库中导出一些数据并存放到Excel表格中,网上有许多教程,下面是我总结的其中俩种方法. 从数据库管理工具中导出(navicat) 在navicat导出数据导Excel中还是比 ...

  4. java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...

    Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...

  5. ITPUB老帖子:小招技巧3: EXCEL文件导入数据库

    小招技巧3: EXCEL文件导入数据库 (发贴日期:2003.03.11) EXCEL文件导入数据库的简便方法 嗨! 这个问题你可能有很多好方法. 不过多学一种不是坏事. 你用的方法可能是: 1. 存 ...

  6. springboot实现上传Excel文件与数据库中的数据进行比对

    springboot实现上传Excel文件与数据库中的数据进行比对 首先先写好文件上传的接口,然后上传需要比对数据的文件,在点击数据比对 下面是一部分数据比对的代码: 后端controller部分: ...

  7. excel 文件中新建的无法打开

    excel 文件中新建的无法打开 一个很细节的问题: 今天突然发现在文件夹新建的excel无法打开了,而已经存在的excel可以打开 最后发现是因为注册表中,excel的模板文件被wps更改了. 解决 ...

  8. EXCEL文件已损坏,无法打开,解决办法

    最近更新的新版本的office,发现容易出现安全问题,常常会遇到Excel文件已损坏,无法打开的问题,这不是我们的文件损坏了,就起原因是office的保护机制,下面推荐两个方法解决,并不是修复我们的文 ...

  9. 如何将PDF如何存入MySQL_如何保存PDF、Word和Excel文件到数据库中

    在项目中,有时候我们很需要把PDF.Word和Excel文档等等上传到数据库,以便日后使用.今天这篇文章向大家讲解如何将这些文件保存到数据库的. 详细步骤 第一步:打开数据库,单击新建查询,创建一个名 ...

最新文章

  1. Python三十年技术演变史
  2. 使用iOS原生sqlite3框架对sqlite数据库进行操作
  3. 使用vm server 虚拟机上安装oracle-rac 共享磁盘错误解决
  4. JDK9的新特性:String压缩和字符编码
  5. Inside Class Loaders
  6. 95-264-040-源码-重启恢复-本地恢复
  7. [zz]世界第一只计算机bug和Debug
  8. python序列类型唯一的映射类型_什么是python中唯一的映射类型
  9. html圆形圆心坐标,圆心坐标公式
  10. java oracle驱动_oracle11g jdbc驱动(jdbc最新驱动)
  11. xmpp 即时通讯协议研究
  12. react jsoneditor 的学习使用
  13. 视觉检测系统设计过程中遇到的问题
  14. Kubernetes(七)Pod进阶之Downward API和PodPreset
  15. 桌面计算机图标怎样优化,桌面图标怎么变小,详细教您电脑桌面图标的太大怎么调小...
  16. 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
  17. nginx常用配置笔记
  18. NOAA气象监测数据下载(可下载最新及每日气象数据)
  19. Python 读书笔记(1)
  20. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

热门文章

  1. Tensorflow入门--图与会话
  2. c语言模拟试题快速排序,快速排序(东软喜欢考类似的算法填空题,又如堆排序的算法等)...
  3. java version 和javac版本不一致_windows安裝多個版本的jdk,解決java-version和javac-version版本不一致的問題...
  4. MyBatis框架 基本配置及运行原理
  5. ibm java英语面试_IBMJava英文面试题(附参考答案)
  6. php属性赋值吗,php – 设置类中属性的默认值
  7. java执行python路径_如何在Python中获取当前执行文件的路径?
  8. linux下执行java_Linux下运行java项目
  9. php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
  10. mysql5.7bka_mysql5.7的sql优化