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

حمل برنامج دليل وان لاين مع الكود (اوبن سورس)

بدأه الفيصل.نت في 20 مارس 2009 · 0 رد · 616 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم ورحمة الله وبركاتة

اخواني الكرام أولاً بما ان هذه هي المشاركة الاولى لي فسمحوا ان ارحب بنفسي في منتداكم الرائع الذي قد افادني وعلمني الكثير وإن شاء الله راح أحاول افيدكم قدر ما استطيع وان نتعاون على نشر العلم ومشاركتة.

كما في العنوان فقد انتهيت بسنة 70 من كتابة كود برنامج دليل اون لاين وهذا مشروع قد الزمت نفسي بان اكمله ثم اجعلة مفتوح المصدر للجميع حتى يطوره.

الفكرهـ :

هي إنشاء دليل مصور يتم حفظ المعلومات و صور الاشخاص فية وان يتم ذالك بصورة امنة , وأيضاً مكانية تصفحها عبر الانترنت حتى يمكنة الوصول اليها دون تعب.

أهداف البرنامج:

1- انشاء دليل مستقل لكل مستخدم في الجهاز و حماية الحسابات بكلمة مرور

2- حفظ بيانات الاشخاص واسترجاها و تعدليها وحذفها

3- حفظ صور الاشخاص في قاعد mysql في حقل longblob واسترجاعها وتغيرها وحذفها

4- عرض السجلات كاملة وطباعة التقارير

5- امكانية تصفح السجل عبر صفحات php حتى يمكن للمستخدم الوصل الى الدليل المصور في اى وقت يريد.

6- الموقع محمي بالطريقة الكلاسكية ( إسم المستخدم و بكملة مرور )

7- وضع خاصية التحديث عبر الانترنت دون الحاجة الى إعادة التثبيت في الاصدارات القادمة

.

..

.....

عيوب البرنامج حتى الان :

1-عندما يتم البحث بأسم غير موجد ينهار البرنامج

و باقي العيوب اتركها لكم لإستخراجها :wink:

Imports System.Data
Imports MySql.Data.MySqlClient
Imports System.IO
Public Class Form1


	Dim myconn As MySqlConnection
	Dim mycom As MySqlCommand
	Dim myreader As MySqlDataReader
	Dim Size As UInt32
	Dim rawData() As Byte
	Dim fs As FileStream
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

		Dim mysqlstr As String
		Dim mycomstr As String
		Dim rawData() As Byte
		'كود الاتصال بالسيفر الشخصي
		mysqlstr = String.Format("server=localhost; user id=root; database=ex; pooling=false; charset=cp1256")
		myconn = New MySqlConnection(mysqlstr)
		'امر سلكت لي العامود من الجدول إكزام
		mycomstr = "select * from exm"
		mycom = New MySqlCommand(mycomstr, myconn)
		myconn.Open()
		myreader = mycom.ExecuteReader()
		myreader.Read()
		'نربط التكست ب العمود المناسب
		TextBox1.Text = myreader.Item("nm")
		TextBox2.Text = myreader.Item("no")
		TextBox3.Text = myreader.Item("ag")
		TextBox4.Text = myreader.Item("jn")
		TextBox5.Text = myreader.Item("ct")
		TextBox6.Text = myreader.Item("id")
		MsgBox("تم الاتصال بالقاعدة ينجاح ")

		'كود اسنرجاع الصورة من ملف بولب في قاعدة البيانات ثم تخزينها في التمبروري انترنت ثم عرضا عبر امج بوكس
		Size = myreader.GetUInt32(myreader.GetOrdinal("Size"))
		rawData = New Byte(Size) {}
		myreader.GetBytes(myreader.GetOrdinal("File"), 0, rawData, 0, Size)
		Dim ad As New MemoryStream(100000)
		Dim bm As Bitmap
		ad.Write(rawData, 0, Size)
		bm = New Bitmap(ad)
		myreader.Close()
		PictureBox1.Image = bm
		ad.Dispose()

		'كود عدد السجلات
		Dim myCountIdCommand As New MySqlCommand
		myCountIdCommand.Connection = myconn
		myCountIdCommand.CommandType = CommandType.Text
		'دالة حساب عدد السجلات
		myCountIdCommand.CommandText = "SELECT Count(id) AS CountID FROM exm;"
		'نقم بالتصريح عن متغير من نوع String ونسميه CountId 
		Dim myCountId As String = myCountIdCommand.ExecuteScalar()
		'نربط التكست ب العمود المناسب
		TextBox7.Text = myCountId

		'اغلاق الاتصال
		myCountIdCommand.Dispose()
		myconn.Close()
		myconn.Dispose()


	End Sub

	Private Sub مسحالحقولToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles مسحالحقولToolStripMenuItem.Click
		'كود لمسح الحقول النصية
		For Each ctl As Control In Controls
			If TypeOf ctl Is TextBox Then
				ctl.Text = ""
			End If
			For Each child As Control In ctl.Controls
				If TypeOf child Is TextBox Then
					child.Text = ""
				End If
			Next child
		Next ctl
		Me.PictureBox1.Image = Image.FromFile("none.jpg")
	End Sub

	Private Sub حفظToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles حفظToolStripMenuItem.Click
		If TextBox8.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox5.Text = "" Then
			MsgBox(" المعلومات ناقصةالرجاء إكمال جميع الحقول", MsgBoxStyle.Information)
			GoTo p
		End If

		'نفتح الاتصال
		myconn.Open()
		Dim FileSize As UInt32
		Dim rawData() As Byte
		Dim fs As FileStream

		fs = New FileStream(TextBox8.Text, FileMode.Open, FileAccess.Read)
		FileSize = fs.Length
		rawData = New Byte(FileSize) {}
		fs.Read(rawData, 0, FileSize)
		fs.Close()
		Dim myInsertCommand As New MySqlCommand
		myInsertCommand.Connection = myconn
		myInsertCommand.CommandType = CommandType.Text
		'دالة الادخال
		myInsertCommand.CommandText = "INSERT INTO exm(nm,no,ag,jn,ct,Name,Size,File) VALUES(@nm,@no,@ag,@jn,@ct,@Name, @Size, @File);"
		'وضع الجداول مع العمود المناسب ونضع قيمة البرامتر
		myInsertCommand.Parameters.Clear()
		myInsertCommand.Parameters.AddWithValue("@nm", TextBox1.Text)
		myInsertCommand.Parameters.AddWithValue("@no", TextBox2.Text)
		myInsertCommand.Parameters.AddWithValue("@ag", TextBox3.Text)
		myInsertCommand.Parameters.AddWithValue("@jn", TextBox4.Text)
		myInsertCommand.Parameters.AddWithValue("@ct", TextBox5.Text)
		myInsertCommand.Parameters.AddWithValue("@po", rawData)
		myInsertCommand.Parameters.AddWithValue("@Name", Dialog1.FileName)
		myInsertCommand.Parameters.AddWithValue("@Size", FileSize)
		myInsertCommand.Parameters.AddWithValue("@File", rawData)
		'خاص بترجمة الاوامر الي ماي سكؤل
		myInsertCommand.ExecuteNonQuery()
		myInsertCommand.Dispose()
		'إغلاق الاتصال
		myconn.Close()
		myconn.Dispose()
		MsgBox(" تم إضافة السجل بنجاح ", MsgBoxStyle.Information)
p:
	End Sub

	Private Sub تعديلToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles تعديلToolStripMenuItem.Click
		'نفتح الاتصال
		If TextBox8.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox5.Text = "" Then
			MsgBox(" المعلومات ناقصةالرجاء إكمال جميع الحقول", MsgBoxStyle.Information)
			GoTo i
		End If
		myconn.Open()
		Dim conn As New MySqlConnection
		Dim Size As UInt32
		Dim rawData() As Byte
		Dim fs As FileStream

		Dim myUpdateCommand As New MySqlCommand
		fs = New FileStream(TextBox8.Text, FileMode.Open, FileAccess.Read)
		Size = fs.Length
		rawData = New Byte(Size) {}
		fs.Read(rawData, 0, Size)
		fs.Close()
		myUpdateCommand.Connection = myconn
		myUpdateCommand.CommandType = CommandType.Text
		'دالة التحديث والتعديل
		myUpdateCommand.CommandText = "UPDATE exm SET nm=@nm ,no=@no ,ag=@ag ,jn=@jn ,ct=@ct ,Name=@Name ,Size=@Size,File=@File WHERE id =@id;"
		'نوضح ان متغير بو هو صورة
		myUpdateCommand.Parameters.Clear()
		'وضع الجداول مع العمود المناسب ونضع قيمة البرامتر
		myUpdateCommand.Parameters.AddWithValue("@nm", TextBox1.Text)
		myUpdateCommand.Parameters.AddWithValue("@no", TextBox2.Text)
		myUpdateCommand.Parameters.AddWithValue("@ag", TextBox3.Text)
		myUpdateCommand.Parameters.AddWithValue("@jn", TextBox4.Text)
		myUpdateCommand.Parameters.AddWithValue("@ct", TextBox5.Text)
		myUpdateCommand.Parameters.AddWithValue("@id", TextBox6.Text)
		myUpdateCommand.Parameters.AddWithValue("@Name", Dialog1.FileName)
		myUpdateCommand.Parameters.AddWithValue("@Size", Size)
		myUpdateCommand.Parameters.AddWithValue("@File", rawData)
		myUpdateCommand.ExecuteNonQuery()
		'اغلاق الاتصال
		myUpdateCommand.Dispose()
		myconn.Close()
		myconn.Dispose()
		MsgBox(" تم تعديل السجل بنجاح ", MsgBoxStyle.Information)
i:
	End Sub

	Private Sub حذفالسجلالحاليToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles حذفالسجلالحاليToolStripMenuItem.Click
		myconn.Open()
		Dim myDeleteCommand As New MySqlCommand
		myDeleteCommand.Connection = myconn
		myDeleteCommand.CommandType = CommandType.Text
		'دالة الحذف
		myDeleteCommand.CommandText = "DELETE FROM exm WHERE no =@no;"
		myDeleteCommand.Parameters.Clear()
		'وضع الجداول مع العمود المناسب ونضع قيمة البرامتر
		myDeleteCommand.Parameters.AddWithValue("@no", TextBox2.Text)
		myDeleteCommand.ExecuteNonQuery()
		myDeleteCommand.Dispose()
		myconn.Close()
		myconn.Dispose()
		MsgBox(" تم حذف السجل الحالي بنجاح ", MsgBoxStyle.Information)
	End Sub

	Private Sub عرضعددالسجلاتToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles عرضعددالسجلاتToolStripMenuItem.Click
		myconn.Open()
		Dim myCountIdCommand As New MySqlCommand
		myCountIdCommand.Connection = myconn
		myCountIdCommand.CommandType = CommandType.Text
		'دالة حساب عدد السجلات
		myCountIdCommand.CommandText = "SELECT Count(id) AS CountID FROM exm;"
		'نقم بالتصريح عن متغير من نوع String ونسميه CountId 
		Dim myCountId As String = myCountIdCommand.ExecuteScalar()
		'نربط التكست ب العمود المناسب
		TextBox7.Text = myCountId
		MsgBox("عدد السجلات هو " & myCountId, MsgBoxStyle.Information)
		myCountIdCommand.Dispose()
		myconn.Close()
		myconn.Dispose()
	End Sub

	Private Sub بحثبرقمالهويةToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles بحثبرقمالهويةToolStripMenuItem.Click
		'كود البحث من موقع منتديات فجول بسيك
		Try
			Dim dr As MySqlDataReader
			Dim sql As String = "select * from exm Where no=@no"
			Dim cmd As New MySqlCommand(sql, myconn)
			cmd.Parameters.Clear()
			cmd.Parameters.AddWithValue("@no", Me.TextBox2.Text)
			myconn.Open()
			dr = cmd.ExecuteReader
			dr.Read()
			Me.TextBox1.Text = dr.Item("nm")
			Me.TextBox3.Text = dr.Item("ag")
			Me.TextBox4.Text = dr.Item("jn")
			Me.TextBox5.Text = dr.Item("ct")
			Me.TextBox6.Text = dr.Item("id")
			Size = dr.GetUInt32(dr.GetOrdinal("Size"))
			rawData = New Byte(Size) {}
			dr.GetBytes(dr.GetOrdinal("File"), 0, rawData, 0, Size)
			Dim ad As New MemoryStream(100000)
			Dim bm As Bitmap
			ad.Write(rawData, 0, Size)
			bm = New Bitmap(ad)
			dr.Close()
			myconn.Close()
			myconn.Dispose()
			PictureBox1.Image = bm
			ad.Dispose()
		Catch ex As Exception
			MsgBox(ex.ToString)
		End Try
	End Sub

	Private Sub بحثبالأسمToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles بحثبالأسمToolStripMenuItem.Click
		'كود البحث من موقع منتديات فجول بسيك
		'هو نفس الكود السابق مع تغير المتغير نو الي نم
		Try
			Dim dr As MySqlDataReader
			Dim sql As String = "select * from exm Where nm=@nm"
			Dim cmd As New MySqlCommand(sql, myconn)
			cmd.Parameters.Clear()
			cmd.Parameters.AddWithValue("@nm", Me.TextBox1.Text)
			myconn.Open()
			dr = cmd.ExecuteReader
			dr.Read()
			Me.TextBox2.Text = dr.Item("no")
			Me.TextBox3.Text = dr.Item("ag")
			Me.TextBox4.Text = dr.Item("jn")
			Me.TextBox5.Text = dr.Item("ct")
			Me.TextBox6.Text = dr.Item("id")
			Size = dr.GetUInt32(dr.GetOrdinal("Size"))
			rawData = New Byte(Size) {}
			dr.GetBytes(dr.GetOrdinal("File"), 0, rawData, 0, Size)
			Dim ad As New MemoryStream(100000)
			Dim bm As Bitmap
			ad.Write(rawData, 0, Size)
			bm = New Bitmap(ad)
			dr.Close()
			myconn.Close()
			myconn.Dispose()
			PictureBox1.Image = bm
			ad.Dispose()
		Catch ex As Exception
			MsgBox(ex.ToString)
		End Try
	End Sub

	Private Sub خروجToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles خروجToolStripMenuItem.Click
		'كود الاختفاء ثم الاغلاق
		Dim iCount As Integer
		For iCount = 90 To 10 Step -10
			Me.Opacity = iCount / 100
			Me.Refresh()
			Threading.Thread.Sleep(50)
		Next
		Me.Close()

	End Sub

	Private Sub جدToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles جدToolStripMenuItem.Click
		'كود لمسح الحقول النصية
		For Each ctl As Control In Controls
			If TypeOf ctl Is TextBox Then
				ctl.Text = ""
			End If
			For Each child As Control In ctl.Controls
				If TypeOf child Is TextBox Then
					child.Text = ""
				End If
			Next child
		Next ctl
		Me.PictureBox1.Image = Image.FromFile("none.jpg")
	End Sub

	Private Sub رقمالأصدارToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles رقمالأصدارToolStripMenuItem.Click
		'استدعاء الفورم 2
		Form2.Show()
	End Sub

	Private Sub فريقالعملToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles فريقالعملToolStripMenuItem.Click
		'الرسالة النصية
		MsgBox("برمجة فيصل عويض الجعيد", MsgBoxStyle.Information)
	End Sub

	Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
		'كود استراد الصورة من منتديات فجول بيسك
		Dialog1.RestoreDirectory = True
		Dialog1.InitialDirectory = (Application.StartupPath & "\DOCUMENTS")
		Try
			Dialog1.Filter = "Photo Files (*.jpg)|*.jpg"
			With Me.Dialog1
				.FilterIndex = 2
				.Title = "Select Photo file"
				.ShowDialog()

				If Len(.FileName) > 0 Then
					Me.PictureBox1.Image = Image.FromFile(Dialog1.FileName)
				End If
			End With
			TextBox8.Text = Dialog1.FileName

		Catch ex As Exception
			MsgBox(ex, MsgBoxStyle.OkOnly, "Error")
		End Try

	End Sub
End Class

اذا كان لديكم اي اسئلة بإمكانكم طرحا في مدونتي

WindowsApplication8.zip

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…