משום מה השאלה הזאת נשאלת שוב ושוב בפורומים...
לשמור זה די ברור איך, אני יוצר פקודת sql עם פרמטרים, או stored procedure ,ומעביר אליה את הבתים של התמונה, כמובן שהעמודה בדטה בייס צריכה להיות מסוג image/binary.
לדוגמה:
byte[] imagedata = null;
//now we can get the image bytes with filestream on local system, or from FileUpload on our web page
System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection("myconstring");
System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand("insert into images (imagename,imagedata) values (@imagename,@imagedata)", con);
com.Parameters.Add(new System.Data.SqlClient.SqlParameter("@imagename", "myimage.gif"));
com.Parameters.Add(new System.Data.SqlClient.SqlParameter("@imagedata", imagedata));
con.Open();
com.ExecuteNonQuery();
יופי, איך מושכים, כרגיל, פקודת select רגילה כשמה שאנו מקבלים מהעמודה הזאת היא מערך של בתים עם נתוני התמונה.
עכשיו כדי להציג אותה ללקוח יש כמה שיטות. קודם כל ניתן להפוך את מערך הבתים לאובייקט של BitMap
byte[] b=null;//
MemoryStream ms=new MemoryStream(b);
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(ms);
או אם יש לי באתר דף שאמור להציג תמונות מדטה בייס לפי איזה פרמטר שהוא מקבל נשתמש ב Response.BinaryWrite כדי לכתוב את מערך הבתים. בדף הרגיל שבו מוצג הטקסט והתמונות נשים כתובת של תמונה עם כתובת של דף אחר, ובדף האחר נשתמש בפונקציה הזאת כדי לשלוח את הבתים בתור תמונה
נניח שיש לי דף PictureGallery.aspx
בתוך הדף אני רוצה להציג תמונות שימשכו מהדטה בייס. אני יוצר דף מיוחד שכל תפקידו הוא למשוך תמונה מהדטה בייס ולשלוח אותה ללקוח, נקרא לו PictureView.aspx
בדף PictureGallery.aspx אני שם לינקים לדף PictureView.aspx בתור כתובת של תמונה:
<img src="PictureView.aspx?imgid=34"/>
וככה מוסיף תמונות כמה שארצה. כעת בדף PictureView.aspx הקוד יראה משהו כמו:
byte[] b = (byte[])com.ExecuteScalar("select imagedata from myimages where imageid=" + Request.Params["imgid"]);
Response.ContentType = "image/jpeg";
Response.BinaryWrite(b);
Response.End();
Technorati Tags:
Sql,
SqlParameter
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5