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

سؤال:مقارنة البيانات المدخلة مع قاعدة البيانات

مغلق
بدأه aljohara في 3 ديسمبر 2005 · 15 رد · 1,763 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

الاول:

انا اعمل على برنامج يتطلب مني ان ادخل اسم الطالب ورقمه (ID)

فاحتاج الى كود يتحقق لي من صحه رقم طالب هل هو صحيح ام لا من الداتا بيس اذا لم يكن صحيح يظهر لي مسج

مع العلم اني استخدم السكيو ال في بناء الداتا بيس

فكيف يمكنني مقارنه الرقم المدخل مع الرقم الموجود في الداتا بيس

الثاني :

اريد كود يسمح لي باظهار تاريخ و وقت اخر مرره تم الدخول فيها الى البرنامج

وشكرا

تم تعديل هذه المشاركة بواسطة hazzoom في 3 ديسمبر 2005 في 01:27

#2

هذا الكود يعمل بحث لموظف بواسطة رقمه

انا مبتدأ يمكن فيه طريقه ثانيه انا ما اعرفها :rolleyes:

اما بالنسبه للشي الثاني فانا مااعرف

Private Sub GetInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetInfo.Click
        str = "select * from Staff where Saf_Id ='" & Trim(ٍStaffID.Text) & "' "
        _oCon.ConnectionString = "server=(local);database=project;trusted_connection=yes"
        Dim _adpt As New System.Data.SqlClient.SqlDataAdapter(str, _oCon)
        Dim DS As New DataSet()
        _adpt.Fill(DS)
        t = DS.Tables(0)
        c = t.Rows.Count
        If c <> 0 Then
            getstaff(0)
        ElseIf MsgBox("Thes ID are not exist,Please enter the correct ID", MsgBoxStyle.OKOnly, "Error Massege") = MsgBoxResult.OK Then
            StaffID.Clear()
        End If
    End Sub

:rolleyes: :rolleyes:

#3

hi

i think thats code will work but

there are another way

dim cmand as new sqlcommand

comand.text="select Id from TabelName where ID ='textbox.text' & "'"

dim obj as new object

con.open

obj=comand.executeScaler

con.close

if obj=nothing then

msgbox("the ID is NOT FOUND)"

else

msgbox("the id FOUND")

am try to select the record thats have the same ID if its return value thats mean the ID found Else the id will not be found

#4

شكرا على تجاوبكم

بس للاسف ماضبط معاي الاكواد

وينكم يا مبرمجين محد ساعدني في االطلب الثاني :s

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

وشكرررررررررررا B)

#5

هذا كود النك

Private Sub Std_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles Std.LinkClicked

Dim DA_St As New FirstPages1

DA_St.Show()

End Sub

اريد مجرد ان تاتي الماوس فوق النك يظهر بوكس يعلمني الى اين يذهب هذا النك

#6

ياجماعة وينكم :( :( :(

#7

السلام عليكم

بالنسبة للسؤال الاول يتم ذلك عن طريق إنشاء عنصر من نوع command ليبحث عن رقم الطالب أو اسمه بهذا الشكل

 'For Searching Data

        'if there's no entry then exit sub
        If txtInputText.Text = "" Then Exit Sub


        'Create a connection string object.
        Dim cnn As New OleDb.OleDbConnection("")

        'Assign the conntion string
        cnn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
        Application.StartupPath & "\DB.mdb"


        'Check if seeking for a number or string
        'By examine the user entry

        'Let's create a flag var
        Dim Column As String

        'Create a query string
        Dim strSQL As String

        If IsNumeric(txtInputText.Text) Then

            'Select ID from tb Where ID = query(1,2,3,4.. whatever).

            'looking for an ID
            Column = "ID"
            strSQL = "SELECT " & Column & " FROM tb WHERE " & _
           Column & " = " & txtInputText.Text

        Else

            'Select Name from tb Where Name = query(سيف عل سالم. whatever).

            'looking for Name
            Column = "Name"

            strSQL = "SELECT " & Column & " FROM tb WHERE " & _
            Column & " ='" & txtInputText.Text & "'"

        End If


        'Create a command object.
        Dim cmd As New OleDb.OleDbCommand(strSQL, cnn)

        'Now time for searching

        cnn.Open()

        'check the dbnull first avoiding crashing your appz.
        Dim objReturn As Object = cmd.ExecuteScalar


        If IsDBNull(objReturn) Or (objReturn Is Nothing) Then
            lblResult.Text = " there's no such value exist in Database"
        Else
            lblResult.Text = "Value " & cmd.ExecuteScalar.ToString & " found in database"
        End If

        'Destroy Objects
        cmd.Dispose()
        cnn.Close()
        objReturn = Nothing
        Column = Nothing
        strSQL = Nothing

اما بالنسبةِ للسؤال الثاني فإن كنت تستخدم VB2005 فيكون هذا الامر أشبه بشُرب الماء لا أكثر.

إليك الطريقة و المنطق , أولاً لمثل هذا المتطلب , يتطلب علينا صنع خاصية ديناميكية أو ما تعرف بـ Dynamic Property

نستطيع ذلك بالضغط بالزر الايمن على الملف My Project في ال Solution Explorer

ثم نختار Open ثم منه نذهب للتبويبة Settings ثم نقوم بالتالي

شاهد الصورة للإضاح.

04_12_05_03_38_55_1133739535Settings.gif

كما تلاحظ , قمنا بإنشاء خاصية ديناميكية باسم LastDate ثم جعلنا نوع البيانات Date تاريخ و جعلناها في المحيط User

والسبب في ذلك اننا نريد تحديث هذه الخاصية , لانه لو جعلناها في المحيط Application ستكون خاصية للقراءة فقط,

اما User Scope فهي للقراءة و الكتابة معاً, ثم أعطيناها تاريخ كقيمة مبدئية وهو التاريخ المشاهد في الصورة.

الان عند حدث تحميل النموذج سنقوم بالقراءة من هذا الخاصية الديناميكية بهذا الشكل.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Load last date had visited 
        lblLastDateEntry.Text = My.Settings.LastDate.ToShortDateString

        'assign string to the label
        lblDateLabel.Text = "آخر تاريخ زيارة لهذا البرنامج هو"

    End Sub

و عند غلق النموذج سنقوم بالكتابة في هذه الخاصية الديناميكية بهذا الشكل.

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

        'Save Date when form's closing
        My.Settings.LastDate = Date.Today

    End Sub

و بعد ذلك ((( إنتهت القصة))) سهلة أليس كذك , بالتوفيق إن شاء الله , إنظر المرفق للإستزادة.

ValueToConfirm.zip

في المثال يتضح المقال

#8

السلام عليكم

فقط لتعديل الخطأ إستبدل النص التالي

 lblResult.Text = "Value " & cmd.ExecuteScalar.ToString & " found in database"

بهذا النص

    lblResult.Text = "Value " & objReturn.ToString & " found in database"

حتى ما نقوم بجلب القيمة مرتين , عفواً على هذا الخطأ السيئ في البرمجة.. (*&*)

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#9

شكرا اخي على مساعدتك لي لكن للاسف :( انا استخدم اصدار 2003

وبالنسبه لسوال الثالث هل تستطيعي مساعدتي فيه؟

#10

السلام عليكم

لابأس حتى في 2003 نستطيع حفظ أخر تاريخ وذلك عن طريق الخاصية الديناميكية , إلا أن الاسلوب بلاشك سيكون مطول

و مختلف نوعا ما. إليك ذلك

الخطوة الاولى : نقوم بإضافة ملف App1.config من Add New Item

الخطوة الثانية : ننشئ داخل الملف App1.config خاصية ديناميكية باسم LastDateVisited بهذا الشكل

<add key="LastDateVisited" value="06/12/2005" />

الخطوة الثالثة : نقوم بإدراج عنوان Label من الـ ToolBox في النموذج ونعطيه الاسم lblLastDateVisited

الخطوة الرابعة : في حدث تحميل النموذج سنعرف متغير من نوع AppSettingsReader للقراءة من الملف App1.config بهذا الشكل

Dim myReader As New AppSettingsReader

الخطوة الخامسة : سنقوم بجلب القيمة من الخاصية الديناميكية LastDateVisited بهذا الشكل

 lblLastDateVisited.Text = _
                .GetValue("LastDateVisited", GetType(String))

الخطوة السادسة عند غلق النموذج : سنقوم بحفظ القيمة في الملف App1.config لكن هذا الملف لا يمكن الحفظ فيه

بشكل مباشر , لذلك لابد أن نقوم بجلبه في الذاكرة ثم نقوم بتحريرة ثم بحفظ التحرير او التعديل الذي طرء عليه. بهذا الشكل

أولاً نقوم بتعريف وثيقة XML Doc وكذلك عنصر ملف المعلومات لمعرفة مسار الملف App1.config بهذا الشكل.

'xml doc to modify app config file.
    Private XMLDoc As New XmlDocument

    'Path of config file.
    Private F As FileInfo

ثانياً سنقوم بإنشاء عنصر من نوع Reflection ليعطينا مسار الملف بهذا الشكل

'Create reflection object.
        Dim Ref As System.Reflection.Assembly = _
        System.Reflection.Assembly.GetExecutingAssembly

ثالثاً : ننشئ متغير نصي لحفظ مسار الملف بهذا الشكل.

'Get the location of appconfig file
        Dim strAppConfigLoc As String
        strAppConfigLoc = Ref.Location

رابعاً : نقوم بحذف اسم الملف App1.config بحيث نجلب فقط المجلد الذي يركن فيه Directory لانه اسم المجلد مختلف

عند جلبه من الـ Reflection سيكون مثلاً App1.exe بينما يتوجب علينا جلبه بهذا الشكل App1.exe.config إليك ذلك.

'Create the correct path to the config  file directory
        Dim appDirectory As String

        'Get the directory path
        appDirectory = Path.GetDirectoryName(strAppConfigLoc)

        'Assign the correct Path
        F = New FileInfo(appDirectory & "\DynamicProps.exe.config")

خامساً : الان سنقوم بجلب الـ XML Doc وهو الـ App.config بهذا الشكل.

'Load appconfig file into  XML document.
        XMLDoc.Load(F.FullName)

سادساً سنقوم بمنادات الإجراء الذي يقوم بتحديث كل الخصائص الديناميكية بهذا الشكل.

 'Modify Last Date
        ModifyAppConfig("LastDateVisited", Today.ToShortDateString)

كما تلاحظ أن الممرر الاولى عبارة عن اسم الـ Key في الملف config مثلاً LastDateVisited

أما الممرر الثاني القيمة التي نود حفظها في هذا الـ Key وهي في مثالنا الحالي التاريخ الحالي Today.ToShortDateString

سابعاً نشاهد سوياً ذلك الإجراء.

Private Sub ModifyAppConfig(ByVal Key As String, ByVal Value As String)

        '1- if there's no value exit sub routine.
        '2- Because form control doesn't support transparency color.
        'that's why we refused color name Transparent..
        If Value = "" OrElse Value _
        = "Transparent" Then Exit Sub

        'Find the right node
        Dim N As XmlNode

        'Loop through all chaild nodes of appSettings parent node
        For Each N In XMLDoc.Item("configuration").Item("appSettings")

            'Skip the comments,by looking for add name of the chaild node.
            If N.Name = "add" Then

                ' Keys that exist into appConfig file.
                If N.Attributes.GetNamedItem("key").Value _
                = Key Then

                    'Value that also available into appConfig file.
                    N.Attributes.GetNamedItem("value").Value _
                    = Value

                End If
            End If
        Next
    End Sub

شاهد الملف المرفق للإستزادة , الملف المرفق عبارة عن نموذج يقوم بحفظ بعض من تعديلات المستخدم

كمثلاً لون الخلفية أو الصورة التي تم إرفاقها في النموذج و التاريخ و غير ذلك.

بالتوفيق إن شاء الله.

بالنسبة للسؤال الثالث : اين هو أو ماهو سؤالك يحفظ الله ؟

DynamicProps.zip

في المثال يتضح المقال

#11

ما ادري كيف اشكرك على المساعدة :rolleyes:

وكلمة شكرا قليلة عليك

لكن ما اقول الله يجزاك الف خير :D

#12

السلام عليكم اخي الغملاسي

اشكرك على جهدك :)

ولكن انا جربت البرنامج لكن للاسف لا يحفظ اي تغيرات

اقوم بدخول للبرنامج واغير الصوره والخلفية والعنوان واقفل البرنامج وارجع بدخول مرة اخرى ولا ارى اي تغيرات :(

#13

وينكم يا جماعة :unsure:

واللله احتاج مساعدكم باسرع وقت :(

#14

السلام عليكم

عزيزي البرنامج يعمل كما هو متوقع, لكنك والله اعلم أنك تجرب البرنامج من الـ IDE وهذا بلا شك كلما قمت بعملية

تشغيل فإنه سيقوم بعملية البناء وبطبيعة الحال سيقوم بإنشاء المتغيرات من جديد مع قيمها الافتراضية.

جرب البرنامج من الملف bin مباشرتاً بالضغط المزدوج على ملف اسم المشروع , وشاهد الناتج

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#15

السلام عليكم

اقتباس
عندي سوال ثاني ياليت تساعدني فيه

اريد ان احفظ قيمه من مثلا فورم1 لكي استخدمها في فورم ثاني

مثلا لو ا دخلت اسمي في الفورم1 اريد عند انتقالي الى الفورم الثاني يكون اسمي مطبوع في ليبل الاسم وشكرا

حياك الله أخي إليك هذا الرابط ستجد ملف مرفق في المشاركة باسم frm.zip قم بتحميلة وشاهد الطريقة في ذلك.

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#16

سؤال ...

ماذا لو كنت اريد ان تكون الاعدادات مؤمنة بحيث لايستطيع اي المستخدم تعديلها الا من خلال البرنامج نفسه ؟؟؟

فما هي الطريقة ؟؟

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

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