PDA

View Full Version : فوری فوری ذخیره عکس



sara_mp
دوشنبه 18 آبان 1388, 18:46 عصر
یه عکس رو با استفاده از open file dialog تو یه کنترل picture box لود کرم حالا چه طور می تونم اون رو همزمان هم تو مسیر پروژه و هم در بانک با استفاده از اسمش ذخیره کنم بعد اونو تو grid view نشون بدم
اگه کسی بلده کدش چی میشه
خیلی فوریه
ممنونم

AliRezaPro
دوشنبه 18 آبان 1388, 22:07 عصر
برای اینسرت عکس به بانک
byte[] ReadFile(string sPath)
{
byte[] data = null;
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);
return data;
}

برای استفاده
try
{

byte[] imageData = ReadFile(txtImagePath.Text);

SqlCommand objCommand = new SqlCommand();
objCommand.Connection = objConnection;
objCommand.CommandType = CommandType.Text;
objCommand.CommandText = "insert into ..
objCommand.Parameters.Add(new SqlParameter("@ImageOriginalPath", (object)txtImagePath.Text));
objCommand.Parameters.Add(new SqlParameter("@ImageData", (object)imageData));

در بانک 2 فیلد برای این کار بزار
یکی از نوی Image و یکی از نوع nvarchar(200)
برای نمایش در گرید و پیکچر باکس
در رویداد CellEnter گرید اینو بنویس

try
{

byte[] imageData = (byte[])dataGridView1.Rows[e.RowIndex].Cells["ImageData"].Value;
txtImagePath.Text = dataGridView1.Rows[e.RowIndex].Cells["OriginalPath"].Value.ToString();

Image newImage;

using (MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length))
{
ms.Write(imageData, 0, imageData.Length);
newImage = Image.FromStream(ms, true);
}
pictureBox1.Image = newImage;
}
catch (Exception ex)
{
MessageBox.Show("عکسی انتخاب نشده است" + "\n" + ex.Message);
}