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

عندي مشكلة في اضافة التاريخ في برنامجي

بدأه ابو أسيل في 25 سبتمبر 2009 · 4 رد · 524 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الاعزاء عندي مشكلة في اضافة التاريخ عند حفظ المعلومات في قاعدة البيانات الخاصة ببرنامجي

اولاً انا استخدم maskedtextbox لإدخال التاريخ ولكن اللي ينحفظ في قاعدة البيانات هو الرقم الموجود في textbox1 اللي هو رقم السجل المدني للموظف بالإضافة الى رقم متسلسل بمعنى عندي في الفورم

maskedtextbox1

maskedtextbox2

maskedtextbox3

maskedtextbox4

على سبيل المثال القيمة في textbox1 = 1 راح يفظ لي في قاعدة البنات

maskedtextbox1=11

maskedtextbox2=12

maskedtextbox3=13

maskedtextbox4=14

لاحظو معي ياخذ قيم التكس بوكس ويضيف عليها رقم تسلسلي 11,12,13,14

هذا كود الاضافة المستخدم

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

If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox7.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox15.Text = "" Or MaskedTextBox5.Text = "" Or MaskedTextBox6.Text = "" Or MaskedTextBox3.Text = "" Or MaskedTextBox4.Text = "" Then
			MsgBox("الرجاء ادخال كامل المعلومات")
		Else
			Dim xx As Boolean = False
			Dim w As String = "select id  from addname where id=@1"
			w = w.Replace("@1", TextBox1.Text)
			conn = New SqlClient.SqlConnection(connstr)
			conn.Open()
			cmd = New SqlClient.SqlCommand(w, conn)
			dr = cmd.ExecuteReader
			dr.Read()
			If dr.HasRows = True Then
				MsgBox("رقم السجل المدخل موجود مسبقاً ")
				TextBox1.Text = ""
			Else
				Dim x As String = "insert into addname (id , general_number , genera_number2 , first_name , second_name , third_name , family_name , rtb , sfh , data1 , data2 , data3 , data4 , userAdd , timesAdd , dataAdd )values (@1 , @2 , @3 , '@4' , '@5' , '@6' , '@7' , @8 , @9 , '@10' , '@11' , '@12' , '@13' , '@14' , @15 , @16 )"

				x = x.Replace("@1", TextBox1.Text)
				x = x.Replace("@2", TextBox2.Text)
				x = x.Replace("@3", TextBox7.Text)
				x = x.Replace("@4", TextBox3.Text)
				x = x.Replace("@5", TextBox4.Text)
				x = x.Replace("@6", TextBox5.Text)
				x = x.Replace("@7", TextBox6.Text)
				x = x.Replace("@8", TextBox15.Text)
				x = x.Replace("@9", TextBox16.Text)
				x = x.Replace("@10", MaskedTextBox5.Text)
				x = x.Replace("@11", MaskedTextBox6.Text)
				x = x.Replace("@12", MaskedTextBox3.Text)
				x = x.Replace("@13", MaskedTextBox4.Text)
				x = x.Replace("@14", TextBox9.Text)
				x = x.Replace("@15", TextBox11.Text)
				x = x.Replace("@16", TextBox10.Text)

				conn = New SqlClient.SqlConnection(connstr)
				conn.Open()
				cmd = New SqlClient.SqlCommand(x, conn)
				cmd.ExecuteNonQuery()
				MsgBox("تمت الاضافة بنجاح")

			End If
		End If

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

ملاحظة : التاريخ الذي يجب ان يكون في البرنامج هو التاريخ الهجري

على ضوء هذه الملاحظة اذا اردة ان يتم اضافة التاريخ عن طريق الاداة dateTimePicker ولكن يكون التاريخ بالهجري

اذا فيه كود ياليت احد يساعدني ويضيفة

لكم مني اطيب تحيه واسف على الاطالة

تم تعديل هذه المشاركة بواسطة ابو أسيل في 25 سبتمبر 2009 في 04:04

#2

أخي الحبيب لم افهم ماذا تريد بالضبط وكذلك من الافضل عمل تقسيمات للجدول حتى يسهل عليك وكذلك هناك مايسمى بالمعاملات فلاحاجة لاستخدام دالة الاستبدال

فياليت توضح لي ماتريد

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3

ياهلا والله اخوي ابو عزام

شاكر مرورك على موضوعي

1- مشكلتي بإختصار اريد ادخال معلومات موضف من ضمن هذه المعلومات ادخال تاريخ ميلادة وتاريخ تعيينه وتاريخ ترقيته وتاريخ استحقاقة لترقية

وانا استخدم maskedtextbox لإدخال التاريخ لكن عند حفظ المعلومات لا يحفظ التاريخ المدخل بل يحفظ القيمة الموجودة في textbox1 + رقم 1

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

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

الشئ الثاني .. طلب ياليت لو تساعدوني فيه..

2- لاحظة بعض المبرمجين يستخدمون هذه الاداة dateTimePicker او اداة مشابهه لها لإدخال التاريخ ويكون التاريخ بالهجري فإن وجد كود او طريقة لاستخدام هذه الاداه في ادخال التاريخ (هجري) اكون لك من الشاكرين

صورة توضيحية لشكل التاريخ في البرنامج

sqdmx168h.jpg

والسلام عليكم

معليش اذا ماعليك كلفة ذكرت في ردك

اقتباس
من الافضل عمل تقسيمات للجدول حتى يسهل عليك وكذلك هناك مايسمى بالمعاملات فلاحاجة لاستخدام دالة الاستبدال

تقسيمات للجدول ولا حاجة لدالة الاستبدال ارجو التوضيح منكم نستفيد اخوي هذي الطريقة اللي اعرفها كما لاحظة في الكود ولكن يمكن يكون عندك طريقة اسهل فارجو التوضيح

لك مني اطيب تحيه استاذي

تم تعديل هذه المشاركة بواسطة ابو أسيل في 25 سبتمبر 2009 في 21:44

#4

وما زلت انتظر من يحل مشكلتي

#5

مرحباً أخي الكريم :)،

بالنسبة لما يقصده الأخ ( أبو عزام ) :

استخدام المعاملات اي ( Parameters ) فهي تساعدك على ترتيب وإعداد القيم المطلوبة لإضافة سجل بشكل متقن وآمن أكثر من استخدامات الأوامر النصية،

كمثال :

Dim _DBasePath As String = "FileName"
	Private Function AddNewRecord(ByVal fullname As String, _
	ByVal profession As String, ByVal placeofbirth As String, _
	ByVal dateofbirth As Date) As String
		Dim ValidInfo As Boolean = ((fullname <> "") And _
		(profession <> "") And (placeofbirth <> ""))

		If Not ValidInfo Then
			Return "You have to fill the fields before you add a new record ."
		End If
		If Not File.Exists(_DBasePath) Then
			Return "The specified data base file wasn't found ."
		End If
		Dim ConnStr As String = String.Format("Data Source=.\" & _
		"SQLEXPRESS;AttachDbFilename={0};Integrated Security=True" & _
		";User Instance=True", _DBasePath)
		Dim Conn As New SqlConnection(ConnStr)
		Try
			Dim CMD As New SqlCommand( _
			"Insert Into Employees (FullName, Profession, PlaceOfBirth, DateOfBirth) " & _
			"Values (@FullName,  @Profession, @PlaceOfBirth, @DateOfBirth)", Conn)
			With CMD.Parameters
				.Add("@FullName", SqlDbType.NVarChar, 50, "FullName").Value = fullname
				.Add("@Profession", SqlDbType.NVarChar, 30, "Profession").Value = profession
				.Add("@PlaceOfBirth", SqlDbType.NVarChar, 50, "PlaceOfBirth").Value = placeofbirth
				.Add("@DateOfBirth", SqlDbType.SmallDateTime, 4, "DateOfBirth").Value = dateofbirth
			End With
			Conn.Open()
			Dim Msg As String = String.Format("{0} row(s) was affected .", CMD.ExecuteNonQuery)
			CMD.Dispose()
			Conn.Close()
			Return Msg
		Catch SQEx As SqlException
			Conn.Close()
			Return (SQEx.Message)
		Catch Ex As Exception
			Conn.Close()
			Return (Ex.Message)
		End Try
		Return ""
	End Function

وبالنسبة لآداة الـ( DateTimePicker ) فهي لاتدعم التاريخ الهجري :( ولايمكن تغيير هذا الشيء لأن مصدره الـ( Windows ) .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

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

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

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

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

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