第一项为默认代码添加(创建工程),后面才为上传图片,比较简单
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static ImageDataEntities efdb = new ImageDataEntities();
private void pictureBox1_Click(object sender, EventArgs e)
{
OpenFileDialog openFi = new OpenFileDialog();
openFi.Filter = "图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif; *.tiff; *.png| JPeg 图像文件(*.jpg;*.jpeg)"
+ "|*.jpg;*.jpeg |GIF 图像文件(*.gif)|*.gif |BMP图像文件(*.bmp)|*.bmp|Tiff图像文件(*.tif;*.tiff)|*.tif;*.tiff|Png图像文件(*.png)"
+ "| *.png |所有文件(*.*)|*.*";
if (openFi.ShowDialog() == DialogResult.OK)
{
this.pictureBox1.Image = Image.FromFile(openFi.FileName);
}
}
private void button2_Click(object sender, EventArgs e)
{
imageList1.Images.Clear();
listView1.Items.Clear();
var objList = efdb.tbImage.ToList();
if (objList.Count != 0)
{
imageList1.Images.Add(Properties.Resources.Add);
listView1.Items.Add("创建工程");
listView1.Items[0].ImageIndex = 0;
listView1.Items[0].Name = "创建工程";
for (int i = 0; i < objList.Count; i++)
{
if (objList[i].Address != null)
{
imageList1.Images.Add(BytesToImage(objList[i].Address));
}
else
{
imageList1.Images.Add(Properties.Resources.zanwu);
}
listView1.Items.Add(objList[i].Name, i + 1);//这边需要+1
listView1.Items[i].ImageIndex = i;
listView1.Items[i].Name = objList[i].ToString();
}
}
}
/// <summary>
/// Convert Byte[] to Image 参考别人转换
/// </summary>
/// <param name="buffer"></param>
/// <returns></returns>
public static Image BytesToImage(byte[] buffer)
{
MemoryStream ms = new MemoryStream(buffer);
Image image = System.Drawing.Image.FromStream(ms);
return image;
}
private void button1_Click(object sender, EventArgs e)
{
tbImage objtbImage = new tbImage
{
Name = this.textBox1.Text.Trim(),
Address = ImageToBytes(this.pictureBox1.Image)
};
var sdsd = efdb.tbImage.Add(objtbImage);
efdb.SaveChanges();
MessageBox.Show("添加成功");
}
/// <summary>
/// Convert Image to Byte[] /*参考别人转换*/
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static byte[] ImageToBytes(Image image)
{
ImageFormat format = image.RawFormat;
using (MemoryStream ms = new MemoryStream())
{
if (format.Equals(ImageFormat.Jpeg))
{
image.Save(ms, ImageFormat.Jpeg);
}
else if (format.Equals(ImageFormat.Png))
{
image.Save(ms, ImageFormat.Png);
}
else if (format.Equals(ImageFormat.Bmp))
{
image.Save(ms, ImageFormat.Bmp);
}
else if (format.Equals(ImageFormat.Gif))
{
image.Save(ms, ImageFormat.Gif);
}
else if (format.Equals(ImageFormat.Icon))
{
image.Save(ms, ImageFormat.Icon);
}
byte[] buffer = new byte[ms.Length];
//Image.Save()会改变MemoryStream的Position,需要重新Seek到Begin
ms.Seek(0, SeekOrigin.Begin);
ms.Read(buffer, 0, buffer.Length);
return buffer;
}
}
}
}
数据库,是三个字段,ID,Name,Address随便命名的。
更新后:https://blog.csdn.net/m0_37688683/article/details/91827395