[英]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.