با سلام خدمت دوستان عزیز و تشکر مخصوص از دو دوست عزیزمون iranrose63 و hdv212
خود من برای ذخیره عکس در پایگاه داده و بازیابی اون و نمایش در یک pictureBox با کمک مطالب موجود در این تایپیک و صرف وقت چند ساعته تونستم این کار رو انجام بدم
و خواستم کد اون رو اینجا قرار بدم که دوستانی که مثله من تازه شروع به کار کردن و احتیاج به توضیحات تکمیلی و بالاخص کد کامل برنامه دارن بتونن از این مطلب استفاده کنن.
البته جا داره دوباره بر این موضوع تاکید داشته باشم که این کد برگرفته از مطالب دوستان در همین تایپیک می باشد و دوباره ازشون کماله تشکر رو دارم.
کد های بخش اضافه کردن عکس:
لازم به توضیح که برای تعیین نوع فیلد photo در پایگاه داده من هر دو نوع image و varbinary max
رو امتحان کردم و ظاهرا مثله هم جواب دادن
using System;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
using System.Drawing;
namespace BlobSQLCETest
{
public partial class Form1 : Form
{
private System.Windows.Forms.PictureBox PictureBox1;
public Form1()
{
InitializeComponent();
}
private void AddEmployee(string photoFilePath, string connectionString)
{
byte[] photo = GetPhoto(photoFilePath);
{
SqlConnection objConnection = new SqlConnection("Data Source=taba;Initial Catalog=webdata;Integrated Security=True;");
SqlCommand command = new SqlCommand("INSERT INTO Table2 (Photo) " + "Values(@Photo)", objConnection);
command.Parameters.Add("@Photo", SqlDbType.Image, photo.Length).Value = photo;
objConnection.Open();
command.ExecuteNonQuery();
}
}
private byte[] GetPhoto(string filePath)
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
return photo;
}
private void b_insert_Click(object sender, EventArgs e)
{
AddEmployee(@"C:\photo1.jpg", @"Data Source='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\webdata.mdf'");
کدهای بخش بازیابی و رویت عکس
private void showphoto()
{
SqlConnection objConnection = new SqlConnection("Data Source=taba;Initial Catalog=webdata;Integrated Security=True;");
DataSet objDataSet = new DataSet();
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.CommandText = "SELECT photo FROM Table2";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.Fill(objDataSet, "Table2");
DataView objDataView = new DataView(objDataSet.Tables["Table2"]);
objConnection.Open();
byte[] arrPicture = ((byte[])(objDataSet.Tables[0].Rows[0][0] ));
MemoryStream ms = new MemoryStream(arrPicture);
pictureBox1.Image = Image.FromStream(ms);
PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
PictureBox1.BorderStyle = BorderStyle.Fixed3D;
PictureBox1.BringToFront();
}
private void b_show_Click(object sender, EventArgs e)
{
showphoto();
}
}
امیدوارم این مطب برای دوستان مفید واقع شه.