把图片文件转换二进制存入数据库中
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Data.SqlClient;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace PictureTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
button2.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
String strName = openFileDialog1.FileName;
if (strName == null)
{
MessageBox.Show("无效文件名!", " 信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
SqlConnection conn;
ConnectionTool contool = new ConnectionTool();
conn = contool.getConn();
try
{
byte[] ib=null;
FileStream fs = new FileStream(strName.ToString(), FileMode.Open, FileAccess.Read);
ib = new byte[fs.Length];
fs.Read(ib, 0, Convert.ToInt32(ib.Length));
fs.Close();
SqlCommand cmd = new SqlCommand("insert into Person (PersonImage,PersonImageName) values ('" + ib + "','" + strName + "')", conn);
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("写入数据库成功!", " 信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("写入数据库失败!", " 信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show("写入数据库失败" + ex.Message, " 信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
conn.Close();
}
}
private void button3_Click(object sender, EventArgs e)
{
showImage();
}
public void showImage() {
SqlConnection conn;
ConnectionTool contool = new ConnectionTool();
conn = contool.getConn();
string strSql = "select * from Person ";
SqlCommand cmd = new SqlCommand(strSql, conn);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
Image image=null;
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
MemoryStream buf = new MemoryStream((byte[])reader[i]);
image= Image.FromStream(buf, true);
}
}
this.pictureBox1.Image = image;
reader.Close();
conn.Close();
}
}
}
本文介绍了一个使用C#实现的简单应用程序,该程序可以将图片文件转换为二进制格式并存入数据库,同时也能从数据库读取二进制数据还原为图片。此应用涉及文件操作、数据库交互及图像处理等技术。

935

被折叠的 条评论
为什么被折叠?



