الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قراءة الصور من Data Base

مغلق
بدأه lana2008 في 17 ديسمبر 2007 · 6 رد · 1,390 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هلا انا بستخدم داتا بيس Northwind SQL2000

و Visual Basic 2005

وبدي اقراء الصور من الداتا بيس و اعرضها بالفورم

بحثت في المنتدى والقيت حلول بس مازبطو عندي

المهم هذا هو كود المشروع كلة

Public Class Form1
	Dim con As New SqlClient.SqlConnection("Integrated Security=true" & _
										   ";Initial Catalog=Northwind;" & _
										   "Data Source=LocalhosT")
	Dim da As New SqlClient.SqlDataAdapter("select * from Categories", con)
	Dim ds As New DataSet
	Dim i As Integer
	Dim ii As Integer

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		'
		'Load
		'
		da.Fill(ds)
	End Sub
	Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
		'
		'View
		'
		Me.DataGridView1.DataSource = ds.Tables(0)
		MsgBox("Rows :" & Me.ds.Tables(0).Rows.Count.ToString)
		Me.TextBox4.Text = Me.ds.Tables(0).Rows.Count
	End Sub
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		'
		'<
		' 
		If Me.ds.Tables(0).Rows.Count.ToString = Me.TextBox1.Text Then
			MsgBox("There Are No More Rows")
		Else
			i += 1
			Me.TextBox1.Text = Me.ds.Tables(0).Rows(i - 1)(0)
			Me.TextBox2.Text = Me.ds.Tables(0).Rows(i - 1)(1)
			Me.TextBox3.Text = Me.ds.Tables(0).Rows(i - 1)(2)
			Try
				Dim Dataaray() As Byte = ds.Tables(0).Rows(i - 1)(3)
				Dim mems As New IO.MemoryStream(Dataaray)
				Me.PictureBox1.Image = Image.FromStream(mems)
			Catch ex As Exception
				MsgBox(ex.Message)
			End Try
		End If
	End Sub
	Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
		'
		'>
		'
		If Me.ds.Tables(0).Rows.Count.ToString + 1 = Me.TextBox1.Text Or _
		Me.TextBox1.Text = "" Or Me.TextBox1.Text = "1" Then
			MsgBox("There Are No More Rows")
		Else
			ii = Me.TextBox1.Text
			i -= 1
			Me.TextBox1.Text = Me.ds.Tables(0).Rows(i - 1)(0)
			Me.TextBox2.Text = Me.ds.Tables(0).Rows(i - 1)(1)
			Me.TextBox3.Text = Me.ds.Tables(0).Rows(i - 1)(2)
		End If
	End Sub

	Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
		'
		'Fill
		'

		If Me.DataGridView1.SelectedRows.Count = 0 Then
			MsgBox("Pleas Select At Least One Row")
		Else
			Me.TextBox1.Text = Me.DataGridView1.SelectedRows.Item(0).Cells(0).Value
			Me.TextBox2.Text = Me.DataGridView1.SelectedRows.Item(0).Cells(1).Value
			Me.TextBox3.Text = Me.DataGridView1.SelectedRows.Item(0).Cells(2).Value
		End If
	End Sub
End Class

هلا المشكلة في الكود هذا

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		'
		'<
		' 
		If Me.ds.Tables(0).Rows.Count.ToString = Me.TextBox1.Text Then
			MsgBox("There Are No More Rows")
		Else
			i += 1
			Me.TextBox1.Text = Me.ds.Tables(0).Rows(i - 1)(0)
			Me.TextBox2.Text = Me.ds.Tables(0).Rows(i - 1)(1)
			Me.TextBox3.Text = Me.ds.Tables(0).Rows(i - 1)(2)
			Try
				Dim Dataaray() As Byte = ds.Tables(0).Rows(i - 1)(3)
				Dim mems As New IO.MemoryStream(Dataaray)
				Me.PictureBox1.Image = Image.FromStream(mems)
			Catch ex As Exception
				MsgBox(ex.Message)
			End Try
		End If
	End Sub

كل ما ضغط يطلعلي الخطاء التالي بس بالنسبة للصورة اما باقي الاشياء ماشي تمام

---------------------------

Parameter is not valid.

---------------------------

حاولت كثير بس من غير نتيجة

ممكن حد يساعدني

وشكررررررررررررررررررررررررررررررررررررررر

#2

طيب ممكن اعرف اذا الطريقة المستخدمة خطاء والا لا

#3

اخي الكريم

اولا : الصوره لما تحفظها في قاعدة البيانات بعد زمن قصير جدا

رح يكون حجم القاعده البيانات كبير جداااااااااااااااااااااااااااااا (ذلك عيب كبير في التصميم)

لذا : ينصح ........

ان يكون هناك فولدر اسمه (Image) مع البرنامج ويفضل ان يكون مع مجلد قاعده البيانات

يتم تجزين الصور في مجلد (Image) وتخرين مسارها في قاعده اليبانات

(على فكره انا رح استخدمها ان شاء الله في مشروعي ).

واتمنى انه تصلح :rolleyes:

#4
  Dim con As New SqlConnection("your Connection string")
	Dim ds As New DataSet
	'///////////////////////////////
	Dim bind As New BindingSource
	'///////////////////////////////

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Dim da As New SqlDataAdapter("select ............. ", con)
		con.Open()
		da.Fill(ds, "TableName")
		con.Close()

		'////////////////////////////////
		bind.DataSource = ds
		bind.DataMember = "TableName"
		'///////////////////////////////

		Me.TextBox1.DataBindings.Add("Text", bind, "Field1")
		Me.TextBox2.DataBindings.Add("Text", bind, "Field2")
		'///////////////////////////////
		Me.PictureBox1.DataBindings.Add("Image", bind, "YourFieldPicture")
		'///////////////////////////////

	End Sub

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		bind.MoveNext()
	End Sub

	Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
		bind.MovePrevious()
	End Sub

دا كود بإستخدام BindingSource هذا الكلاس جديد في 2005 يقوم بعمل الربط بين الأدوات على الفورمة وبين قاعدة البيانات وكود إظهار الصورة سهل مع هذا الكلاس وهو أيضاً يقوم بعمليات التنقل بين الصفوف

أرجو التوفيق مع هذا الكلاس ولو في مشكلة

إيميلى

waleedvb@yahoo.com

متى يصـــل البُنيان تمامــه *** إذا كنت تبنيه وغـيرك يهدمه

لـو كان سهماً واحــداً لتقيته *** ولكنه ســهم وثانيـــة وثالثه

#5

مازبطت طلع خطاء التالي ارفقت صورة

post-97016-1199049453_thumb.jpg

#6

عوض السطر الدي به الخطأ ب

Me.Picturebox1.DataBindings.Add("Image", Bind, "Picture", True)

بالتوفيق

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#7

كلام الأخ Fikou-sama صحيح جزاء الله خير

متى يصـــل البُنيان تمامــه *** إذا كنت تبنيه وغـيرك يهدمه

لـو كان سهماً واحــداً لتقيته *** ولكنه ســهم وثانيـــة وثالثه

هذا الموضوع مغلق.

مواضيع مشابهة