How to insert image in MySQL Database and retrive it using vb.net?

巧了我就是萌 提交于 2019-12-25 02:37:27

问题


I am using the longblob data type to insert image but it gives error.

I want to insert image from picture box to mysql database.


回答1:


I have here a c# implementation but you can use a c# to VB.Net converter

In the aspx file:

<asp:FileUpload runat="server" ID="fuPersonPicture" />
<asp:Button runat="server" ID="btnPhotoUpload" Text="Upload" OnClick="btnPhotoUpload_Click" />

In code-behind:

protected void btnPhotoUpload_Click(object sender, EventArgs e)
{
    byte[] rawData = new byte[fuPersonPicture.FileBytes.Length];
    int fileSize = fuPersonPicture.FileBytes.Length;
    fuPersonPicture.FileContent.Read(rawData, 0, fileSize);

    string extension = Path.GetExtension(fuPersonPicture.PostedFile.FileName);
    switch (extension.ToLower())
    {
        // Only allow uploads that look like images.
        case ".jpg":
        case ".jpeg":
        case ".gif":
        case ".png":
        case ".bmp":
            System.Drawing.Image myImage = System.Drawing.Image.FromStream(fuPersonPicture.PostedFile.InputStream);

            fuPersonPicture.FileContent.Close();

            PersonPictureManager.Insert(fuPersonPicture.FileName, fileSize, rawData, myImage.Height, myImage.Width);

            //lbUploadMessage.Text = string.Empty;
            break;

        default:
            //lbUploadMessage.Text = "<br>File is not a valid image file (JPG, JPEG, GIF, BMP, PNG).";
            break;
    }
    fuPersonPicture.FileContent.Close();
}

Definition of PersonPictureManager.Insert()

public static void Insert(string FileName, int FileSize, byte[] RawData, int ImageHeight, int ImageWidth)
{
        string strSQL = "insert into person_picture (file_id, file_name, file_size, file, width, height) values (NULL, @file_name, @file_size, ?file, @width, @height)";
        using (MySqlCommand cmd = new MySqlCommand(strSQL))
        {
            cmd.Parameters.Add(new MySqlParameter("@file_name", FileName));
            cmd.Parameters.Add(new MySqlParameter("@file_size", FileSize));
            cmd.Parameters.Add(new MySqlParameter("@height", ImageHeight));
            cmd.Parameters.Add(new MySqlParameter("@width", ImageWidth));
            cmd.Parameters.Add(new MySqlParameter("?file", RawData));
            DatabaseConnection.ExecuteNonQuery(cmd); // Just a DB helper class
        }
}


来源:https://stackoverflow.com/questions/15010300/how-to-insert-image-in-mysql-database-and-retrive-it-using-vb-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!