繁体   English   中英

使用C#将图像插入MS Access数据库

[英]Insert image into MS Access database using C#

我正在尝试将图像和名称都输入到我的ms Access数据库中,但是我不知道该怎么做。 目前,我将输入图像转换为字节格式的第一个功能。 秒功能是我将图像添加到数据库中的地方。 实际上,这段代码来自教程,但是他们没有告诉您如何将图像插入MS Access数据库。 有关功能的注释已清楚解释了代码注释。

    private byte[] ConvertToDBFormat(Image InputImage)
    {
        Bitmap BmpImage = new Bitmap(InputImage);
        System.IO.MemoryStream Mystream = new System.IO.MemoryStream();
        BmpImage.Save(Mystream, System.Drawing.Imaging.ImageFormat.Jpeg);
        byte[] ImageAsBytes = Mystream.ToArray();
        return ImageAsBytes;

    }
    /// <summary>
    /// Stores a Face image and its Name in the Training Set, in MS Access Database 
    /// </summary>
    /// <param name="ImageAsBytes"></param> Face image converted to bytes 
    /// <param name="FaceName"></param>the name of face set in the textbox
    private void AddFaceToDB(Image InputFace, string FaceName)
    {
        if (Connection.State.Equals(ConnectionState.Closed))
        {
            Connection.Open();
        }

        try
        {
            MessageBox.Show("Image saved at: " + rowNumber.ToString());
            OleDbCommand OledbInsert = new OleDbCommand("Insert INTO TrainingSet1 (FaceID, FaceName, FaceImage) VALUES('" + rowNumber.ToString() + "','" + txtBoxFaceName.Text + "',@MyImg)", Connection);
            OleDbParameter imageParameter = OledbInsert.Parameters.AddWithValue("@Img", SqlDbType.Binary);

        }

    }

有人可以帮助我向我展示如何使用C#添加图像和文本。 这是我第一次学习c#和MS Access数据库。 目前,我不知道如何从这里继续执行我的代码。 我正在使用OleDb的数据库部分。 非常感谢您的帮助。 谢谢。

我不喜欢使用“答案”来给出更适合作为注释的内容,但是我想告诉您两点。

首先,如果要将图像存储在数据库中,则应查看BLOB(二进制大对象)。

但是第二点,也许更重要的是,似乎最佳实践的共识是,如果您可以在项目中放弃它,则将图像保存到其他位置并仅将路径存储在Access中。 这有助于使您保持在Access db大小上限以下,并且似乎也使数据库具有更高的响应速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM