为什么我不能在mysql中存储20千字节的图像

Smi*_*ith -1 .net mysql blob mysql-connector

tinyblob使用以下代码使用MysqlConnector for .net在mysql 中的字段中存储缩略图大小的图像(少于50kb)

Dim imgCov As New ImageConverter()
        Dim imgArray As Byte() = DirectCast(imgCov.ConvertTo(pictureBox1.Image , GetType(Byte())), Byte())

        Try
            Using conn As New MySqlConnection(conStr)
                conn.Open
                Dim sql As String ="Insert Into Services(Name,Code,Emp_ID,Image) Values(@Name,@Code,@Emp_ID,@Image)"
                Using cmd As New MySqlCommand(sql,conn)
                    cmd.Parameters.Add("@Name", MySqlDbType.VarChar, 45).Value ="Ironing"
                    cmd.Parameters.Add("@Code", MySqlDbType.VarChar, 45).Value ="IRN"
                    cmd.Parameters.Add("@Emp_ID", MySqlDbType.Int32).Value =1
                    cmd.Parameters.Add("@Image", MySqlDbType.LongBlob, 100).Value=imgArray
                    cmd.ExecuteNonQuery ()
                End Using
            End Using
            MsgBox("Insert Complete")

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
Run Code Online (Sandbox Code Playgroud)

问题是当我存储图像时,它不会保存所有数据.当我尝试检索时,这很明显,我开始收到错误.

调查错误,我简单地增加了longblob后工作正常的字段大小.

那么为什么我不能在微小的野外存储20KB的图像呢?

Uue*_*rdo 5

TINYBLOB只能容纳256字节; 你需要至少一个普通的BLOB,它可以存储64KB.

http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html