PDA

View Full Version : مبتدی: نمایش تصویر



girl_shining
دوشنبه 14 تیر 1389, 13:35 عصر
باسلام
من یه سری عکس رو در دیتا بیسی که با اس کیوال 2008 ساختم با نام آدی شون ذخیره کردم
حالا با استفاده از این آی دی عکس مورد نظرمو با این کد سرچ زدم

string strSQL="select *from Tablepic where ID=('"+textBox1.Text+"')";

آدی عکسمو تو تکس باکس نوشتم و سرچ زدم حالا عکس مورد نظر که پیدا شده رو چه جوری توی پیکچر باکسم نمایش بدم؟؟
و اگر عکس مورد نظر پیدا نشد چه جوری این طلاع بدم
من کدهای اکسس رو پیدا کردم ولی کدهای اس کیو ال می خوام

مدیریت سایت:من خیلی سرج زدم ولی پیدا نکردم مدیریت محترم اگه سوالم تکراری هست خواهش می کنم سوالمو پاک نکنید تا من بتونم لینکی که برام میذارنو ببینم و خودم پاکش می کنم

ricky22
دوشنبه 14 تیر 1389, 13:45 عصر
سلام دوست عزیز
عکسو داخل دیتابیس ذخیره کردی یا ادرس عکسو؟
در هر صورت کد نمایش عکس از روی ادرس ان در picturebox اینطوری هست:


PictureBox.Image = Image.FromFile("address");

RIG000
دوشنبه 14 تیر 1389, 13:59 عصر
// سورس کد ذخیره تصویر در بانک اطلاعاتی

public void OnUpload(Object sender, EventArgs e)
{
// ساختن یک byte[] از فایل ورودی
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
Upload.PostedFile.InputStream.Read (pic, 0, len);

// افزودن تصویر و توضیح تصویر به بانک اطلاعاتی
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpa ss");
try
{
connection.Open ();
SqlCommand cmd = new SqlCommand ("insert into Image "
+ "(Picture, Comment) values (@pic, @text)", connection);
cmd.Parameters.Add ("@pic", pic);
cmd.Parameters.Add ("@text", Comment.Text);
cmd.ExecuteNonQuery ();
}
finally
{
connection.Close ();
}
}


به کارت میاد جواب میده .


private void Page_Load(object sender, System.EventArgs e)
{
MemoryStream stream = new MemoryStream ();
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpa ss");
try
{
connection.Open ();
SqlCommand command = new
SqlCommand ("select Picture from Image", connection);
byte[] image = (byte[]) command.ExecuteScalar ();
stream.Write (image, 0, image.Length);
Bitmap bitmap = new Bitmap (stream);
Response.ContentType = "image/gif";
bitmap.Save (Response.OutputStream, ImageFormat.Gif);
}
finally
{
connection.Close ();
stream.Close ();
}
}

girl_shining
دوشنبه 14 تیر 1389, 23:40 عصر
ممنون
ولی من کد نمایش تصویر رو خواستم نه ذخیره!!
من عکسارو ذخیره کردم حالا چه جوری با دادن آی دی تصویر اون نمایش داده بشه!!!
کد دیلیت تصویر انتخاب شده هم می خوام(اس کیو ال )
اگه کسی داره محض رضای خدا بده

mmd2009
دوشنبه 14 تیر 1389, 23:56 عصر
با سلام

یه سوال؟

شما ادرس عکس رو مگه ذخیره نکردی تو بانک؟؟؟ یا به صورت باینری ذخیره اش کردی ؟

girl_shining
سه شنبه 15 تیر 1389, 00:26 صبح
من با این کد ذخیره کردم حالا نمیدونم کد سرچ و دیلیتش رو چه جوری بنویسم


SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Picture;Integrated Security=True");
string strSQL = "INSERT INTO TablePic(ID, Pic) VALUES(@ID ,@Pic)";
con.Open();
SqlCommand cmd = new SqlCommand(strSQL, con);
MemoryStream ms = new MemoryStream();
imageBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = ms.GetBuffer();
cmd.Parameters.Add("@ID", SqlDbType.NVarChar, 50).Value = textBox1.Text;
cmd.Parameters.Add("@Pic", SqlDbType.VarBinary).Value = bytes;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Saved successful");


می خوام وقتی توی تکس باکس آی دی عکسو می زنم با زدن دکمه نمایش اونو نشون بده و با زدن دکمه ی دیلیت اون پاک بشه:(

میلاد قاضی پور
سه شنبه 15 تیر 1389, 01:05 صبح
خب کاری نداره که :



SqlDataAdapter adap = new SqlDataAdapter("select * from tablename where id='"
+ datagridview1.currentrow.cells["id"] .value+ "'", connection);
dataset ds=new dataset();

adapt.fill(ds, tablename);

datarow myrow;
myrow=ds.tables["tablename"].rows[0];
byte[] pic=(byte[])myrow["imagefieldname"];

ImageConverter imgCV = new ImageConverter();
pictureBox1.Image = imgCV.ConvertFrom(pic) as Image;


تا اینجا که نمایش بود . برای پاک کردن هم کاری نداره :



sqlcommand comm=new sqlcommand();
comm.commandtext="delete * from tablename where id='"+ datagridview1.currentrow.cells["id"] .value+ "'";

connection.open();
comm.executenonequery();
connection.close();

girl_shining
سه شنبه 15 تیر 1389, 12:37 عصر
یکی کمک کنه توروخدا
ببنید این کد نمایش تصویر توی اکسسه من اس کیو الشو میخوام


try
{
GC.Collect();//اين متد براي تخليه منابع سيستم فراخواني مي شود
oleDbCommand1.CommandText = "SELECT pic FROM Pic WHERE id=" + indexID + "";
OleDbDataReader myReader = oleDbCommand1.ExecuteReader();
if (myReader.Read())
{
MemoryStream ms = new MemoryStream((byte[])(myReader.GetValue(0)));
imageBox1.Image = Image.FromStream(ms);
}
myReader.Close(); index = indexID;
flag = true; lbInfo.Text = "Original Size: " + imageBox1.Image.Size;
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }



اینم کد حذف تصویر توی اکسسه من اس کیو الشو میخوام


if (MsgBox.ShowMessage(0, "پس از حذف امكان بازيابي وجود ندارد، آيا براي حذف اطمينان داريد" + " ؟", "سوال", "بله", "خير", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading) == DialogResult.OK)
{
try
{
oleDbCommand1.CommandText = "DELETE FROM Pic WHERE (id=" + index + ")";
oleDbCommand1.ExecuteNonQuery();
//اگ فقط يك عكس موجود باشد شمارنده تعداد عكس ها برابر صفر و ايميج باكس خالي مي شود
if (count == 1) { count = index = 0; imageBox1.Image = null; }
else if (count > index)
{//با استفاده از اين حلقه شماره آيدي عكسي هاي بعدي را يكي كم مي كنيم تا به ترتيب باقي بماند
for (int i = index; i < count; i++)
{
oleDbCommand1.CommandText = "UPDATE Pic SET id=" + i + " WHERE id=" + (i + 1) + "";
oleDbCommand1.ExecuteNonQuery();
}
if (index == 1 && index < count) { count--; Show(1); } else { count--; index--; Show(index); }
}//در انتها بعد اگر آخرين عكس موجود را حذف كرده باشيم بايد عكس ماقبل آخر نشان دهيم و يكي از شماره كل عكس ها كم كنيم
else
{ count = index = index - 1; Show(index); }
tbTotal.Text = count.ToString();
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
}

کمکم کنیدددددددددددددددددددددد دد:گریه:

mmd2009
سه شنبه 15 تیر 1389, 12:44 عصر
اون کدی که اوج بلند گذاشته واسه نمایش عکس هستش

girl_shining
سه شنبه 15 تیر 1389, 12:52 عصر
کار نکرد
من دیتا گریدویو ندارم که کد اونو داده...
اگه کار می کرد دوباره پیام نمیدادم:گریه:

voodoo01
چهارشنبه 16 تیر 1389, 04:15 صبح
private void btnLoad_Click(object sender, System.EventArgs e)
{
try
{
SqlCommand cmdSelect=new SqlCommand("select Picture" +
" from tblImgData where ID=@ID",this.sqlConnection1);
cmdSelect.Parameters.Add("@ID",SqlDbType.Int,4);
cmdSelect.Parameters["@ID"].Value=this.editID.Text;

this.sqlConnection1.Open();
byte[] barrImg=(byte[])cmdSelect.ExecuteScalar();
string strfn=Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs=new FileStream(strfn,
FileMode.CreateNew, FileAccess.Write);
fs.Write(barrImg,0,barrImg.Length);
fs.Flush();
fs.Close();
pictureBox1.Image=Image.FromFile(strfn);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
this.sqlConnection1.Close();
}
}

جهت بارگری عکس
توجه این کد C# می باشد :لبخند::چشمک: