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
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 try
18 {
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 try
41 {
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 }