怎么将大Byte数组类型存储到以blob方式Mysql数据库中

原创 2012年03月22日 15:21:04
最近在做一个指纹方面的软件,要用到Mysql数据库,由于c#在连接数据库方面比较的方面,就用了c#语言来写,但是在一些细节方面的地方,遇到了比较棘手的问题,搞了好长时间才搞定,所以想就把经验写在下面。
    文章主要解决的是,从指纹采集器上得到的指纹是一个很大的的byte数组,存储到数据库里。
    代码如下:
MySqlConnection conn = new MySqlConnection("Data Source = localhost;Initial Catalog =fingerprint;User ID=root;Password =123456");//连接到localhost 的 fingerprint数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
MySqlCommand com = new MySqlCommand(); //创建连接对象

com.CommandText = "UPDATE  student SET SFINGERPRINT = ?FingerPrint WHERE SNO=090209209"; //sql语句,里面的FingerPrint为一个占位符


MySql.Data.MySqlClient.MySqlParameter param = new MySql.Data.MySqlClient.MySqlParameter("FingerPrint", MySql.Data.MySqlClient.MySqlDbType.VarBinary,传入byte数据的长度, 


ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, 要出入的byte数据);
 
com.Parameters.Add(param);


com.ExecuteNonQuery();


当然还可以这样写:
MySqlConnection conn = new MySqlConnection("Data Source = localhost;Initial Catalog =fingerprint;User ID=root;Password =123456");//连接到localhost数据库的fingerprint表
   
MySqlCommand com = new MySqlCommand(); //创建连接对象


com.CommandText = "UPDATE  student SET SFINGERPRINT = ?FingerPrint WHERE SNO=090209209"; //sql语句,里面的FingerPrint为一个占位符


com.Parameters.Add("?FingerPrint", MySql.Data.MySqlClient.MySqlDbType.Blob);


com.Parameters["?FingerPrint"].Value = 要存储的byte值;


com.ExecuteNonQuery();


这样以上两种方法都可以。


但是有一点需要注意,就是在用Parameters.Add添加完后,如果你的程序在未结束的情况下,又运行了一次上面的Parameters.Add后,vs会提示你Parameter has been defied,意思就是说,


变量已定义,其实我们只需在com.ExecuteNonQuery();后面添加一条语句就可以了,就是:com.Parameters.Clear();再次运行,OK,Perfect!

如何把数组写入mysql数据库

如果直接把数组拼接SQL语句的话,根据你拼接的方式不同,会有两种情况: 1、SQL执行成功,把数组的地址存入了数据库。 2、SQL执行失败,因为数组的内容有引号或者乱码等问题,导致SQL语句无法被编译...
  • lalioCAT
  • lalioCAT
  • 2015年07月14日 00:53
  • 4510

string与byte[]相互转换,字符串转换成byte[]数组存入数据库(image)

string与byte[]相互转换,字符串转换成byte[]数组存入数据库(image) 1.system.text.encoding.default.getbytes(context.reques...
  • CGS_______
  • CGS_______
  • 2016年10月13日 21:58
  • 1789

数据库中byte[]的用法

byte[]为字节数组,在编程过程中将其转换为结构体,
  • u010968153
  • u010968153
  • 2014年10月28日 16:04
  • 1504

mysql字段类型及占用字节

TINYINT 1 字节 SMALLINT 2 个字节 MEDIUMINT 3 个字节 INT 4 个字节 INTEGER 4 个字节 BIGINT 8 个字节 FLOAT(X) 4 如果...
  • BeiiGang
  • BeiiGang
  • 2014年12月11日 09:33
  • 9500

byteArray转BLOB存入数据库

byte[]形式的图片存入数据库中,对应字段为blob。。。。 try{ conn = this.getConnection(); conn.setAutoCommit(f...
  • GIS__
  • GIS__
  • 2011年08月11日 18:46
  • 3037

mysql中数据的存储范围

1、int 最多存储10位数字,即-2147683648 到2147683647  4字节 。当存储的11111111111位数字后,将默认存储int的最大值(2147683647);当存储的-111...
  • xcc_2269861428
  • xcc_2269861428
  • 2016年12月20日 09:19
  • 526

收藏一个关于数据库存储BLOB类型数据的方法

原贴地址:http://www.cnblogs.com/yony/p/3254669.html Oracle数据库对应字段BLOB类型,实体对应字节数组类型(byte[]、@Type...
  • ZNG_XP
  • ZNG_XP
  • 2016年10月24日 11:19
  • 1459

Java如何把String[]类型的记录插入到Mysql中

前言最近的 Java Web 项目使用了 Mysql 数据库,本文大致讲解了 Java 如何 通过 Jdbc 连接数据库 。其中主要步骤为:安装 Mysql、下载 JDBC 驱动、建立Connecti...
  • never_cxb
  • never_cxb
  • 2016年01月24日 17:30
  • 4834

MySQL中如何插入blob类型数据

等具体研究完写篇完整的,现在只是作为一个标记,以免忘记mysql_real_escape_string函数。mysql_real_escape_string()unsigned long mysql_...
  • fibbery
  • fibbery
  • 2007年12月25日 18:57
  • 11571

PHP将数组存入数据库中的四种方式

PHP将数组存入数据库中的四种方式 最近突然遇到了一个问题,如何用PHP将数组存入到数据库中,经过自己的多方查找和研究,总结了以下四种方法: 1.implode()和explode()方式 2.pri...
  • the_victory
  • the_victory
  • 2015年04月30日 19:49
  • 17634
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎么将大Byte数组类型存储到以blob方式Mysql数据库中
举报原因:
原因补充:

(最多只允许输入30个字)