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

本文介绍了如何使用C#将从指纹采集器获取的大Byte数组存储到Mysql数据库的Blob字段中,提供了两种方法,并强调在多次执行参数添加时,需要清空Parameters以避免错误。
部署运行你感兴趣的模型镜像
最近在做一个指纹方面的软件,要用到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!

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值