تور لحظه آخری
امروز : یکشنبه ، 15 مهر 1403    احادیث و روایات:  امام صادق (ع):كسى كه بهره‏اى از دانش ندارد معنا ندارد كه ديگران او را سعادتمند بدانند.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1820990993




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

ذخيره عكس در sql با استفاده از vb.net -


واضح آرشیو وب فارسی:سایت ریسک: ذخيره عكس در sql با استفاده از vb.net mehdirahimi 18 اسفند 1385, 20:57سلام، من مي‌خواستم در Vb.net يك عكس را در Sql ذخيره و بازيابي كنم. لطفا هر كي مي‌دونه من رو راهنمايي كنه. مرسي mehdirahimi 18 اسفند 1385, 23:10تو رو خدا يكي جواب من رو بده m_ziba 19 اسفند 1385, 11:22سلام این پرسش در این انجمن خیلی پرسیده شده. اگه یه جستجو می کردی حتماً پیدا می کردی. ----- اما ... باید آدرس عکس رو در DB ذخیره کنی نه خود عکس رو . بعد خود عکس رو از طریق متد upload توی اون مسیر قرار بدی. در مورد upload file در ASP.NET لینک زیر می تونه کمکت کنه البته این c# هست اما به راحتی خودت می تونی رو VB بیاریش: mehdirahimi 19 اسفند 1385, 23:40سلام، مرسي از اينكه جوابمو دادي ولي من مي‌خوام كه خود عكس رو در sql ذخيره كنم. باور كن كه خيلي search كردم هم در اين Site و هم در Siteهاي ديگه ولي.......... فقط مي‌دونم كه بايد Dim imgstream As New MemoryStream() img.Save(imgstream, System.Drawing.Imaging.ImageFormat.Jpeg با استفاده از كد بالا عكسم رو به صورت يك memorystream ذخيره كنم بعد بايد اين stream رو در يك آرايه‌ايي از نوع بايت ذخيره كنم و بعد اين آرايه رو در SQL ذخيره كنم ولي نمي‌دونم كه چه جوري اين كار رو انجام بدم. fereshte22 23 اسفند 1385, 15:39سلام این پرسش در این انجمن خیلی پرسیده شده. اگه یه جستجو می کردی حتماً پیدا می کردی. ----- اما ... باید آدرس عکس رو در DB ذخیره کنی نه خود عکس رو . بعد خود عکس رو از طریق متد upload توی اون مسیر قرار بدی. در مورد upload file در ASP.NET لینک زیر می تونه کمکت کنه البته این c# هست اما به راحتی خودت می تونی رو VB بیاریش: من این برنامه را به vb.net تبدیل کردم ولی هنوز بعضی قسمت هایش error میدهد.(قسمت هایی که با * مشخص شده.) میشه لطف کنید یه نگاهی به این برنامه بندازید .خطا هایش را مشخص کنید. Imports System Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.HtmlControls Imports System.IO Imports System.Data Imports System.Data.SqlClient Imports System.Collections Imports System.ComponentModel Imports System.Drawing Imports System.Web.SessionState Partial Class _Default Inherits System.Web.UI.Page Protected Overrides Sub OnInit(ByVal e As EventArgs) InitializeComponent() MyBase.OnInit(e) End Sub Private Sub InitializeComponent() * Me.Load += New System.EventHandler(Me.Page_Load) * Me.cmdSend.Click += New System.EventHandler(Me.cmdSend_Click) End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If (Request.QueryString("fileid") <> "") Then ShowTheFile(Convert.ToInt32(Request.QueryString("fileid"))) End If End Sub Protected Sub cmdSend_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSend.Click Dim myFile As = filMyFile.PostedFile Dim nFileLen As Integer = myFile.ContentLength If nFileLen > 0 Then Dim myData() As Byte = New Byte(nFileLen) {} myFile.InputStream.Read(myData, 0, nFileLen) Dim strFilename As String = System.IO.Path.GetFileName(myFile.FileName) * WriteToFile(Server.MapPath(strFilename), myData) Dim nFileID As Integer nFileID = WriteToDB(strFilename, myFile.ContentType, myData) lblInfo.Text = "Filename: " + strFilename + "<br>" + "Size: " + nFileLen.ToString() + "<p>" imgFile.ImageUrl = strFilename imgFile.ToolTip = "This file was stored to as file." lblText1.Text = imgFile.ImageUrl imgDB.ImageUrl = GetMyName() + "?fileid=" + nFileID.ToString() imgDB.ToolTip = "This file was stored in database." lblText2.Text = imgDB.ImageUrl imgFile.Visible = True imgDB.Visible = True lblText1.Visible = True lblText2.Visible = True End If End Sub Private Sub WriteToFile(ByRef Buffer As Byte(), ByVal strpath As String) Dim newfile As FileStream newfile = New FileStream(strpath, FileMode.Create) newfile.Write(Buffer, 0, Buffer.Length) newfile.Close() End Sub Private Function WriteToDB(ByVal strname As String, ByVal strType As String, ByRef Buffer As Byte()) As Integer Dim nFileID As Integer nFileID = 0 Dim dbConn As SqlConnection dbConn = New SqlConnection("Data Source=SEPAHAN-BD 5CB 18SQLEXPRESS;Initial Catalog=ssgshop;Integrated Security=True") Dim dbAdapt As SqlDataAdapter dbAdapt = New SqlDataAdapter("SELECT * FROM kala", dbConn) dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey Dim dbCB As SqlCommandBuilder dbCB = New SqlCommandBuilder(dbAdapt) dbConn.Open() Dim dbSet As DataSet dbSet = New DataSet() dbAdapt.Fill(dbSet, "kala") Dim dbTable As DataTable dbTable = dbSet.Tables("kala") Dim dbRow As DataRow dbRow = dbTable.NewRow() dbRow("FileName") = "D:/Inetpub/" dbRow("FileSize") = Buffer.Length dbRow("ContentType") = strType dbRow("picture") = Buffer dbTable.Rows.Add(dbRow) dbAdapt.Update(dbSet, "kala") If Not (dbRow.IsNull("fileid")) Then nFileID = dbRow("fileid") End If dbConn.Close() Return (nFileID) End Function Private Function ShowTheFile(ByVal FileID As Integer) Dim sql As String sql = "SELECT FileSize, picture, ContentType FROM kala WHERE fileid = " + FileID.ToString() Dim dbConn As SqlConnection dbConn = New SqlConnection("Data Source=SEPAHAN-BD 5CB 18SQLEXPRESS;Initial Catalog=ssgshop;Integrated Security=True") Dim dbComm As SqlCommand dbComm = New SqlCommand(sql, dbConn) dbConn.Open() Dim dbRead As SqlDataReader dbRead = dbComm.ExecuteReader() dbRead.Read() Response.Clear() Response.ContentType = dbRead("ContentType") *Response.OutputStream.Write((byte())dbRead("picture"), 0, (int)dbRead("FileSize")); dbConn.Close() Response.End() End Function Private Function GetMyName() As String Dim strScript As String strScript = Request.ServerVariables("SCRIPT_NAME") Dim nPos As Integer nPos = strScript.LastIndexOf("/") If (nPos > -1) Then strScript = strScript.Substring(nPos + 1) End If Return (strScript) End Function End Class ssj 03 فروردين 1386, 01:43این مشکل من هم هست ... چند روزه که فکرمو مشغول کرده .... اگه کدشو پیدا کردم به شما هم میدم ،شما هم اگه کدشو نوشتی به من هم بده ... من البنه می خوام که عکس از طریق وبـــکم گرفنه بشــه ، سپس در دیتابیس sql ذخیره یشه .... شما هم اگه کدش رو داری برای من و بقیه بذارین .... با تشـــکر . m_ziba 03 فروردين 1386, 15:47سلام من Vb.net کار نکردم مشکل شما رو نمی دونم. اما شاید =+ در این زبان وجود نداره. در مرود دو خط دیگه ای هم که گفتی می تونی جستجو کنی ببینی معادلش تو Vb چیه؟ یا اگه کسی می دونه راهنمایی کنه MDP 05 فروردين 1386, 21:42خوب با اجازه اولا که vb.net یه مشکل کوچیک با =+ داره بهتر از همون روش قدیمی استفاده کنی. دوما معادل اون هم اینه Dim writer As New System.IO.StreamWriter("Masoud.txt") writer.WriteLine("!!!SOME VALUE!!!!") writer.Flush() writer.Close() fereshte22 07 فروردين 1386, 19:03دوست عزیز منظورتون از روش قدیمی چیه؟میتونید برام بنویسید. راستش من این کد را با قسمت converterیک سایت تبدیل کردم. در مورد راهنمایی دومتون یعنی باید به جای Response.OutputStream.Write((byte())dbRead("picture"), 0, (int)dbRead("FileSize")); از کد زیر استفاده کنم؟ Dim writer As New System.IO.StreamWriter("picture") writer.WriteLine("FileSize") writer.Flush() writer.Close() .در ضمن اگه شما یا هر کدام از دوستان یه برنامه با vb.net بفرستند که مسیر عکس را در دیتا بیس وخود عکس را در یک پوشه ذخیره کند ممنون میشوم. m_ziba 18 فروردين 1386, 08:50جناب mehdirahimi ببخشید که پاسخ شما دیر شد! اما خوب ببینید این لینک به درد شما می خوره: ehsan_evil 13 دي 1386, 15:07واسه ذخیره عکس در دیتابیس با VB از این دستور استفاده کن البته در ویندوز : ذخیره در بانک: برای این کار ابتدا باید یک Stream تعریف میکنیم. Dim Fs As New System.IO.FileStream("Temp.jpg", IO.FileMode.Create) آرگومان دوم بستگی به نوع کار، ممکنه تغییر کنه. اگه یک فایلی رو که (هر فایلی) میخواهید در DB ذخیره کنید، در هارد وجود داره، آرگومان دوم رو باید IO.FileMode.Open انتخاب کنید. در این مثال میخواهیم محتویات یک PictureBox رو مستقیما در بانک ذخیره کنیم. PictureBox.Image.Save(Fs, System.Drawing.Imaging.ImageFormat.Jpeg) سپس باید یک آرایه ای از Byte تعریف کنیم و طول آرایه باید به اندازه محتویات Stream باشد. بعد با خواندن Stream، آرایه رو پر میکنیم. Dim aArray(CType(Fs.Length, Integer) - 1) As Byte Fs.Position = 0 Fs.Read(aArray, 0, aArray.Length) Fs.Close() و در آخر حتما باید Stream رو ببندیم. حالا Object مورد نظرمون در یک آرایه ذخیره شده. حالا باید بوسیله یک دستور Insert آرایه رو در بانک ذخیره کنیم. به این صورت عمل مینماییم. در زمان ساختن دستور INSERT باید فیلدی رو که حاوی Object مورد نظرمونه رو بصورت پارامتری مقدار دهی کنیم. CommandSQL.CommandText = "INSERT INTO TableName (FieldName) VALUES (@Pic)" CommandSQL.Parameters.Add("@Pic", aArray) حالا با اجرا کردن Command، فایل (Object) در بانک ذخیره میشه. خواندن از بانک: برای خواندن از بانک، پس از تعریف یک Byte (برای دخیره کردن Object مورد نظر که در بانک وجود دارد) محتویات فیلد حاوی Object مورد نظر رو در این متغیر میریزیم. بعد به روش زیر عمل میکنیم: Dim Bt() As Byte = CType(ds.Tables(0).Rows(0).Item("Pic"), Byte()) Dim MS As New System.IO.MemoryStream(Bt) picTShakhs.Image = Image.FromStream(MS) «برگرفته از مطالب استاد خوبم آقای بابک زواری»




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 723]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن