你的位置:首页 > 软件开发 > 数据库 > C#实现MySQL数据库中的blob数据存储

C#实现MySQL数据库中的blob数据存储

发布时间:2015-11-12 12:00:28
在MySQL数据库中,有一种blob数据类型,用来存储文件。C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll。 Mysql.Data.dll(6.9.6)组件下载地址:http://download.csdn.net/detai ...

C#实现MySQL数据库中的blob数据存储

    在MySQL数据库中,有一种blob数据类型,用来存储文件。C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll。

    Mysql.Data.dll(6.9.6)组件下载地址:http://download.csdn.net/detail/keypig_zz/9262767。

    现在说一说如何实现blob类型数据的操作。

    新建winform程序,添加两个按钮。代码如下:

 1 System.IO.MemoryStream ms = new System.IO.MemoryStream(); 2     private void button1_Click(object sender, EventArgs e) 3     { 4       //测试序列化与反序列化 5       int[] arr = { 1, 2, 3 }; 6       BinaryFormatter bFormatter = new BinaryFormatter(); 7       bFormatter.Serialize(ms, arr); 8       byte[] byteArr = ms.ToArray(); 9       MessageBox.Show(byteArr.Length.ToString());10       MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectString);11       //string insertStr = "update mm set aa=4,arr=@blobData where aa=4;";12       string insertStr = "insert into mm(arr) values(@blobData);";//需要主键设置自增13       MySqlParameter par=new MySqlParameter("@blobData",MySqlDbType.Blob);14       par.Value=byteArr;15       MySqlCommand cmd = new MySqlCommand(insertStr, conn);16       cmd.Parameters.Add(par);17       try18       {19         conn.Open();20         cmd.ExecuteNonQuery();21         ms.Close();22         ms.Dispose();23       }24       catch (Exception ep)25       {26         MessageBox.Show(ep.Message);27       }28       29       30     }31 32     private void button2_Click(object sender, EventArgs e)33     {34       BinaryFormatter bFormatter = new BinaryFormatter();35       36       MySql.Data.MySqlClient.MySqlDataReader myData;37       MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(Properties.Settings.Default.MySqlConnectString);38       string readStr = "select arr from mm where id =6;";39       MySqlCommand cmd = new MySqlCommand(readStr, conn);40       try41       {42         conn.Open();43         myData = cmd.ExecuteReader();44         if (!myData.HasRows)45         {46           throw new Exception("没有blob数据");47         }48         myData.Read();49         byte[] blob = new byte[myData.GetBytes(0, 0, null, 0, int.MaxValue)];50         myData.GetBytes(0, 0, blob, 0, blob.Length);51         myData.Close();52         ms = new System.IO.MemoryStream(blob);53         ms.Position = 0;54         int[] arr = (int[])bFormatter.Deserialize(ms);55         ms.Dispose();56         string arrStr = null;57         for (int i = 0; i < arr.GetLength(0); i++)58         {59           arrStr += arr[i].ToString()+" ";60         }61         MessageBox.Show(arrStr);62       }63       catch(Exception ep)64       {65         MessageBox.Show(ep.Message);66       }67 68     }   

原标题:C#实现MySQL数据库中的blob数据存储

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录