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

عرض اسم المستخدم بعد تسجيل الدخول

بدأه rauf911 في 1 مايو 2010 · 6 رد · 975 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

البرنامج عبارة عن شاشة تحتوي على رقم المستخدم وكلمة المرور

وشاشة اخرى لتدوين مشاكل الموظف ومن ثم تخزينها في الداتا بيز

ولدي جدولين الاول وهو جدول employee الذي يحتوي على بيانات الموظفين والثاني mashakel وهو يحتوي على رقم الموظف والمشاكل الخاصة بالموظف

والذي احتاجه أني أريد عندما اقوم بتسجيل الدخول

يتم عرض اسم المستخدم في label في صفحة المشاكل

أي عندما أقوم بوضع رقم المستخدم وكلمة المرور الصحيحة لي كموظف

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

وهذا هو الكود للبرنامج

Imports System.Data
Imports System.Data.OleDb
Imports System



Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim con As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + Server.MapPath(".\\App_Data\db1.mdb"))
 Dim emp_da As New OleDbDataAdapter("select * from employee", con)
        Dim emp_ds As New DataSet
        emp_ds.Clear()
        con.Open()
        emp_da.Fill(emp_ds, "employee")
        con.Close()
End Sub

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim connection As New OleDbConnection
        Dim cmd As New OleDbCommand
        cmd.Connection = connection
        Try
            connection.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("App_Data/db1.mdb"))
            connection.Open()
            cmd.CommandText = ("select * from employee where emp_no =@p1 and emp_Password=@p2")

            cmd.Parameters.Clear()
            cmd.Parameters.AddWithValue("@p1", Txtempno.Text.Trim())
            cmd.Parameters.AddWithValue("@p2", Txtpassword.Text.Trim())

            Dim dr As Data.OleDb.OleDbDataReader = cmd.ExecuteReader
            dr.Read()

            If dr.HasRows Then

                Session("emp_no") = Trim(dr("emp_no"))
                Response.Redirect("ProbSum.aspx")

            Else
                Label1.Text = "تأكد من اسم المستخدم وكلمة المرور"
            End If
            dr.Close()
            connection.Close()
        Catch ex As Exception
            Label1.Text = ex.Message

        End Try

End Sub

هذا بالنسبة لكود صفحة تسجيل الدخول

أما بالنسبة لصفحة المشاكل

 Imports System.Data
Imports System.Data.OleDb
Imports System
Partial Class ProbSum
    Inherits System.Web.UI.Page
    Dim con As New Data.OleDb.OleDbConnection
    Dim cmd As New Data.OleDb.OleDbCommand

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        con.ConnectionString = ("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + Server.MapPath(".\\App_Data\db1.mdb"))
        cmd.Connection = con
        cmd.CommandText = "insert into mashakel (prob_type,prob_descrp,prob_date,prob_level) values (@emp_type,@emp_descrp,@emp_date,@emp_level)"
        cmd.Parameters.AddWithValue("@emp_type", Me.prob_type.Text)
        cmd.Parameters.AddWithValue("@emp_descrp", Me.prob_descr.Text)
        cmd.Parameters.AddWithValue("@emp_date", Me.prob_date.Text)
        cmd.Parameters.AddWithValue("@emp_level", Me.prob_level.Text)
        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
        MsgBox("sent ok")
End Sub

أرجو منكم أخواني أن تفيدوني وجزاكم الله خيراً

#2

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

بعد هذا السطر

Session("emp_no") = Trim(dr.item("emp_no"))

يتم وضع هذا السطر

Session("emp_name") = Trim(dr.item("emp_name"))

بشرط حقل اسم المستخدم هو emp_name

بكذا احنا وضعنا اسم اسم المستخدم في سيشن

في صفحة المشاكل في حدث Page_Load

يتم وضع الكود التالي

Label1.Text = Session("emp_name").tostring

تم حل مشكلتك التي طلبتها ولكن هناك مشكلة فادحة وهي إمكانية دخول شاشة المشاكل بدون تسجيل الدخول

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

يحمل قيمة أو لا فإن كان لا يحمل قيمة نعيده لشاشة التسجيل ويصبح الكود كالتالي :

If Session("emp_name") = "" Then

            Response.Redirect("default.aspx")

        Else

            Label1.Text = Session("emp_name").ToString

       End If

شرح الكود هنا وضعنا شرط لو السيشن اللي يحمل قيمة الاسم فارغ يتم إرجاع المستخدم لشاشة الدخول ولو يوجد به أسم يتم وضع اسم المستخدم في أداة ليبل 1

هذا والله أعلم..

تم تعديل هذه المشاركة بواسطة محمدvb في 1 مايو 2010 في 21:51

#3

أخي جزاك الله خير

لا أدري كيف أستطيع أن اشكرك.

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

عندما أقوم في صفحة المشاكل بحفظ البيانات بعد الضغط على الزر button يقوم بحفظ جميع البيانات في الداتا بيز ما عدا حقلين emp_no & emp_name في جدول المشاكل علماً بأن بيانات الجداول لدي هي كالتالي الجدول الاول وهو جدول الموظفين ويحتوي على

ID ,emp_name ,emp_no ,emp_password ,emp_debt

أما الجدول الآخر جدول المشاكل فيحتوي على

problem_ID ,emp_no ,emp_name ,prob_type ,prob_descrp ,prob_date ,prob_level

علماً بأن المفتاحين الرئيسيين هم ID , problem_ID

وقد قمت بالربط بين الحقلين emo_no في الجدولين

ولكن الاحظ حينما اقوم بحفظ المشاكل المدخلة من قبل المستخدم

فإنه يتم حفظ البيانات المدخلة في الفورم وهي prob_type ,prob_descrp ,prob_date ,prob_level في الداتا بيز

ولايتم اضافة بيانات في الحقلين emp_name ,emp_no

فأرجو منك أخي الكريم مساعدتي إن استطعت المساعدة

وجزاك الله خيراً على مساعدتك لي واهتمامك

وبارك الله فيك

#4

بسم الله الرحمن الرحيم

أخى العزيز انا لى بعض الملاحظات السريعة بس

انت ليه حاطط ده emp_name فى جدول المشاكل

افرض انه عاوز بعد كده يغير فى الأسم الموظف لما يستعرض اسم المشكلة هيجيب له اسم الموظف القديم و ده مشكلة صح؟

ثانيا انت بتقول انك علماً بأن المفتاحين الرئيسيين هم ID , problem_ID

ليه ما تعمل رقم الموظف هو اللى مفتاح اساسى اللى فى الموظفين

و تعمل رقم الموظف مفتاح فرعى اللى فى المشاكل

لو عملت كده اظن ان المشكلة اصلا مش هيبقى له وجود

جرب و انا معك اهو

اتمنى اكون افدتك

#5

للأسف عملت كل اللي قلتلي اياه

بس الحظ معاندني حبتين

حولت المفتاح الرئيسي في جدول الموظفين اللي هو emp_no

وفي جدول المشاكل عملت problem_ID

وحذفت اللي هو emp_name من جدول مشاكل

بس مفيش فايده خالص

#6

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

اخي العزيز انت بتقول انه عند النقر على زر اضافة بصفحة المشاكل يتم الاضافة زي مانت عامل ( الكود اللي باعثته بالاول ) مش كدا ؟

اذا كدا يبقى المشكله بكود الادخال

بص دي الجملة بتاعت الادخال

insert into mashakel (prob_type,prob_descrp,prob_date,prob_level) values (@emp_type,@emp_descrp,@emp_date,@emp_level)

يبقى هيدخل emp_no,emp_name ازاي ؟

يبقى الجملة لازم تكون كدا

insert into mashakel (emp_no,prob_type,prob_descp,prob_date,prob_level) VALUES ('"+Session["emp_no"].ToString()+"',@emp_type,@emp_descrp,@emp_date,@emp_level);

اما emp_name فعلى ما اعتقد انك حذفتها زي ما انت قولت بالرد , ان شاء الله كدا هتشتغل

#7

أخي الكريم Marwan alakhras85 جزاك الله خير

الحمدلله عملت اللي حكتلي عليه والحمدلله زبط

ويعطيك الف عافيه

والله يوفقك يارب ويجزيك بالخير

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