PDA

View Full Version : مشکل در ذخیره و بازیابی تصاویر در بانک اطلاعاتی



amirmms
سه شنبه 28 آذر 1391, 18:13 عصر
سلام
من با استفاده از کد های زیر یک عکس رو باز میکنم و توی بانک اطلاعاتی سیو میکنم ولی 2 درصد عکس رو بیشتر نشون نمیده یا فقط یه تیکشو نشون میده اگه بتونید کمک کنید ممنون میشم .

Dim tt As Byte()
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim open As New OpenFileDialog
open.Filter = "JPGE|*.JPG|Gif|*.GIF|Bitmap|*.BMP|PNG|*.PNG|All Images|*.BMP;*.Gif;*.JPG;*.PNG"
open.Title = "الصاق تصویر نامه"
open.Multiselect = False
open.RestoreDirectory = True
If open.ShowDialog = Windows.Forms.DialogResult.OK Then
txt_payh.Text = open.FileName
PictureBox1.Image = Image.FromFile(open.FileName)
Button2.Enabled = True
End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
tt = IO.File.ReadAllBytes(txt_payh.Text)
WordTableAdapter.InsertQuery(" ", " ", tt)
Me.WordTableAdapter.Fill(Me.DataDataSet.Word)
End Sub

amirmms
سه شنبه 28 آذر 1391, 18:47 عصر
آقا کسی نیست ترو خدا کمک کنید :|

rezaprogrammer
سه شنبه 28 آذر 1391, 19:00 عصر
به این لینک سر بزن (http://barnamenevis.org/showthread.php?289658-%D9%86%D8%AD%D9%88%D9%87-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%88-%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C-Access)

خودم هم کدهایی رو نوشتم که البته برای SQL مناسب تره:

ذخیره:
Private Sub BtnSave_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles BtnSave.Click
If TxtName.Text = "" Then
MsgBox("نام کارمند را وارد کنيد")
Exit Sub
End If
Dim ms As New MemoryStream
Try

PicPicture.Image.Save(ms, PicPicture.Image.RawFormat)
Catch exc As Exception
MsgBox("تصوير مناسب را انتخاب کنيد")
Exit Sub
End Try

Dim arrImage() As Byte = ms.GetBuffer
ms.Close()
Try
Dim con As New SqlConnection(StrConnection)
con.Open()
Dim strSQL As String = "INSERT INTO Picture (Name_User, Picture)" & _
"VALUES (@Name_User, @Picture)"
Dim cmd As New SqlCommand(strSQL, con)
With cmd

.Parameters.Add(New SqlParameter("@Name_User", _
SqlDbType.NVarChar, 30)).Value = TxtName.Text
.Parameters.Add(New SqlParameter("@Picture", SqlDbType.Image)).Value = arrImage
End With
cmd.ExecuteNonQuery()
con.Close()
Catch exc As Exception
End
End Try

بازیابی

PicLoadPicture.BorderStyle = BorderStyle.FixedSingle
LstLoadPicture.BorderStyle = BorderStyle.FixedSingle
Try
Dim con As New SqlConnection(StrConnection)
Dim cmd As New SqlCommand("SELECT * FROM Picture", con)
da = New SqlDataAdapter(cmd)
cbd = New SqlCommandBuilder(da)
dsPictures = New DataSet
da.Fill(dsPictures)
With LstLoadPicture
.DataSource = dsPictures.Tables(0)
.DisplayMember = "Name_User"
End With
Catch exc As Exception
MsgBox("سيستم دچار مشکل شده است")
End
End Try

amirmms
سه شنبه 28 آذر 1391, 19:04 عصر
مرسی ممنون

amirmms
سه شنبه 28 آذر 1391, 19:12 عصر
یه سوال :
PicPicture.Image.Save چی هست ؟؟؟؟؟؟؟؟؟
کلا PicPicture کجا تعریف شده ؟

rezaprogrammer
سه شنبه 28 آذر 1391, 19:21 عصر
PicPicture یک شی PictureBox هست که مشخصه ای که به اسم Image داره از نوع System.Drawing.Image هست که خودش روتین Save برای ذخیره به صورت Stream کپسوله کرده

amirmms
سه شنبه 28 آذر 1391, 19:28 عصر
آقا حالا شطرنجی شد

rezaprogrammer
سه شنبه 28 آذر 1391, 19:43 عصر
تا همین اندازه هم که شد خیلی خوبه :لبخند:

یادم رفت بگم. ستونی که در SQLServer برای ذخیره عکس استفاده می کنی رو باید از نوع Image تعیین کنی.

amirmms
سه شنبه 28 آذر 1391, 19:44 عصر
هههههههههههههههه آره :قلب:
من با اکسسم و از نوع OLE object هست آخه با SQL نمیخوام بسازم آخه یه دیکشنری سادس

rezaprogrammer
سه شنبه 28 آذر 1391, 19:52 عصر
بهترین فرمت همین OLE object هست. اگه نشه شاید مجبوری کیفیت فرمت رو عوض کنی. مثلاً Gif یا Png.
شاید جواب بده

amirmms
سه شنبه 28 آذر 1391, 20:00 عصر
آقا خیلی خیلی مرسی با اس کیو ال درست شد
فقط یه سوال من اس کیو الم آفلاین هست یعنی به صورت فایل mdf به پروژه اضافه کردم توی ستاپ نیاز به نصب اس کیو ال هست ؟؟؟؟؟؟

rezaprogrammer
سه شنبه 28 آذر 1391, 20:33 عصر
درسته که شما به SQL SERVER وصل نشدی. ولی برنامه کاربردی شما به فایلهایی برای بکارگیری اون فایل ها احتیاج داره. پس به صورت غیر مستقیم به فایل های dll برای استفاده از SQL Client احتیاج داری

amirmms
سه شنبه 28 آذر 1391, 20:45 عصر
dll هاش به صورت copy local هست بسه ؟ یا باید نصب بشه ؟

rezaprogrammer
سه شنبه 28 آذر 1391, 21:08 عصر
باید نصب بشه. می تونی حداقل نسخه Express رو همراه برنامه بذاری. نصبش آسونه و وقت گیر هم نیست

amirmms
سه شنبه 28 آذر 1391, 21:13 عصر
میدونم خیلی رو مخم ولی نصب که بشه یعنی درسته ؟ کاربر میتونه نصبش کنه بدون اطلاعات قبلی یعنی نام کاربری و یا پسوورد و یااااا .............. :|

rezaprogrammer
سه شنبه 28 آذر 1391, 21:20 عصر
نه بابا این حرفا چیه؟ بله می تونه. هیچ چیزی از کاربر نمیخاد. به راحتی قابل اجراست

amirmms
سه شنبه 28 آذر 1391, 21:40 عصر
وای مرسی این بزرگترین سوالم توی عمرم بود مرسی مرسی خیلی مرسی :) :قلب::لبخند::تشویق: