数据库存储图片:将图片转换成 2进制存储在数据库中

using ;
using .Collections.Generic;
using .ComponentModel;
using .Data;
using .Drawing;
using .Text;
using .Windows.Forms;
using .IO;
using .Data.SqlClient;

WindowsApplication1
{
public partial Form1 : Form
{
strPath;
FileStream file;
public Form1
{
InitializeComponent;
}
//先定义个思路方法用于将传入图片转换成 2进制代码
private Byte PhotoByte( photoPath)
{
(photoPath != null )
{
str = photoPath;//保存传入路径
//将传入路径下图片以文件方式打开
file = FileStream(str, FileMode.Open, FileAccess.Read);//以只读方式打开传入路劲下图片
Byte SQLData = [file.Length];
file.Read(SQLData, 0, SQLData.Length);//完整将文件中数据读入到创建数据中
file.Close;
MessageBox.Show(photoPath);
SQLData;

}

{
(File.Exists(@"E:\学生党员信息管理系统\其它\默认相片.jpg") true)
{
str = @"E:\学生党员信息管理系统\其它\默认相片.jpg";
file = FileStream(str, FileMode.Open, FileAccess.Read);
Byte SQLData = [file.Length];
file.Read(SQLData, 0, SQLData.Length);
file.Close;
MessageBox.Show("1" + photoPath);
SQLData;
}

{
this.pictureBox1.Image.Save(@"E:\学生党员信息管理系统\其它\默认相片.jpg", .Drawing.Imaging.ImageFormat.Jpeg);
str = @"E:\学生党员信息管理系统\其它\默认相片.jpg";
file = FileStream(str, FileMode.Open, FileAccess.Read);
Byte SQLData = [file.Length];
file.Read(SQLData, 0, SQLData.Length);
file.Close;
MessageBox.Show("2" + photoPath);
SQLData;
}
}
}

//定义个思路方法显示图片
private void getPhotoByte
{
SqlConnection sqlCon = SqlConnection(@"Data Source=CHENHAO;Initial Catalog=学生党员信息管理系统;Integrated Security=True");
sqlCon.Open;
sql1 = "select photo from photo where photoID="+Convert .ToInt32 (this .textBox1 .Text . .Trim );
SqlCommand sqlCom = SqlCommand(sql1, sqlCon);
(Convert.DBNull != sqlCom.ExecuteScalar)
{
pictureBox1 .Image =Image .FromStream ( MemoryStream ((Byte )sqlCom .ExecuteScalar ));
}
sqlCon.Close;
}
//定义个思路方法用于保存图片到数据库中
private PhotToSave(Byte SQLData)
{
SqlConnection sqlCon = SqlConnection(@"Data Source=CHENHAO;Initial Catalog=学生党员信息管理系统;Integrated Security=True");
sqlCon.Open;
SqlCommand sqlCom = SqlCommand("insert o photo (photo) values(@photo)", sqlCon);
SqlParameter sqlPar1 = SqlParameter("@photo", SqlDbType.Binary, 8000);
sqlPar1.Value = SQLData;
sqlCom.Parameters.Add(sqlPar1);
i= sqlCom.ExecuteNonQuery;
sqlCon.Close;
i;

}

private void buttonAdd_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = OpenFileDialog;
ofd.Filter = "JPEG(*.jpg)|*.jpg|位图文件(*.bmp)|*.bmp";//筛选图片格式
ofd.FilterIndex = 0;//从0开始查找
ofd.ReadOnlyChecked = false;//不是个只读复选框
(ofd.ShowDialog DialogResult.OK)//当用户选择完图片,并确认后
{
strPath = ofd.FileName;
this.pictureBox1.Image = Image.FromFile(this.strPath);
}
}
private void buttonSave_Click(object sender, EventArgs e)
{
(this.PhotToSave(this.PhotoByte(strPath)) > 0)//思路方法将图片以 2进制形式保存到数据库中
{
this.pictureBox1.Image = null ;
MessageBox.Show("图片保存成功");
}
}

private void buttonShow_Click(object sender, EventArgs e)
{
this.getPhotoByte; //思路方法显示保存在数据库中图片
}

private void pictureBox1_Validated(object sender, EventArgs e)
{
}

private void button2_Click(object sender, EventArgs e)
{
}
}
}

Tags:  数据库存储过程 二进制转换 二进制数据库 数据库存储图片

延伸阅读

最新评论

发表评论