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

سوال في ستور بورسيجر

بدأه السيد الهاشمي في 9 مارس 2012 · 4 رد · 667 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تحية طيبة لاعضاء ومشرفين المنتدى ..

عندي سوال في الاستور بورسيجر

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

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

طبعا . هذه كود الحذف

 For i As Integer = 0 To DataList1.Items.Count - 1
                Dim link As LinkButton = TryCast(sender, LinkButton)
                Dim dli As DataListItem = (CType((link.NamingContainer), DataListItem))
                Dim txt As String = (CType(dli.FindControl("Label13"), Label)).Text
                ob.sql = "delete from topic where id_top=@id_top and us_id=@us_id"
                ob.cm = New SqlCommand(ob.sql, ob.con)
                ob.con.Open()
                ob.cm.Parameters.AddWithValue("@id_top", txt)
                ob.cm.Parameters.AddWithValue("@us_id", Session("us_id"))
                ob.cm.ExecuteNonQuery()
                ob.con.Close()
            Next

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

وهذه هو الاستور بورسيجر

ALTER PROCEDURE delete_topic(@id_top int,us_id int)

AS

begin
delete from topic where id_top=@id_top

	end

طبعا المشكلة مو في طريقة ارسال اكثر من متغير بس المشكلة في كيف سوف اعمل مقارنة في الاستور بروسيجر يقارن قيمة السيشن برقم الشخص الذي كتب ؟

انا عندي @id_top رقم الموضوع والذي اقوم بالحذف عن طريقة وطبعا us_id هذه رقم المستخدم الذي كتب .. واريد ان اقارنه بالسيشن هذه الموجود في الكود Session("us_id") طبعا .. الكود يشتغل مية مية .. الي فوق

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

#2

فقط غير السطر

 ob.sql = "delete from topic where id_top=@id_top and us_id=@us_id"

الى

    ob.cm = New SqlCommand("delete_topic", ob.con)
ob.cm.CommandType=System.Data.CommandType.StoredProcedure

وفي البروسيجر ضع جملة الحذف كما هي موجودة في الكود

delete from topic where id_top=@id_top and us_id=@us_id

فقط غير السطر

 ob.sql = "delete from topic where id_top=@id_top and us_id=@us_id"

الى

    ob.cm = New SqlCommand("delete_topic", ob.con)
ob.cm.CommandType=System.Data.CommandType.StoredProcedure

وفي البروسيجر ضع جملة الحذف كما هي موجودة في الكود

delete from topic where id_top=@id_top and us_id=@us_id
#3
TareqVB كتب:

فقط غير السطر

 ob.sql = "delete from topic where id_top=@id_top and us_id=@us_id"

الى

    ob.cm = New SqlCommand("delete_topic", ob.con)
ob.cm.CommandType=System.Data.CommandType.StoredProcedure

وفي البروسيجر ضع جملة الحذف كما هي موجودة في الكود

delete from topic where id_top=@id_top and us_id=@us_id

فقط غير السطر

 ob.sql = "delete from topic where id_top=@id_top and us_id=@us_id"

الى

    ob.cm = New SqlCommand("delete_topic", ob.con)
ob.cm.CommandType=System.Data.CommandType.StoredProcedure

وفي البروسيجر ضع جملة الحذف كما هي موجودة في الكود

delete from topic where id_top=@id_top and us_id=@us_id

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

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

#4

الكود السابق يقوم بالمطلوب فهل جربته ؟

حيث لن يتم الحذف الا اذا تساوي Session("us_id") =us_id مما يعني ان كاتب الموضوع هو من حذفه .

والمفروض ان تعطل زر الحذف اذا لم يكن الزائر الحالي هو صاحب الموضوع عن طريق عمل استعلام .

1
#5
TareqVB كتب:

الكود السابق يقوم بالمطلوب فهل جربته ؟

حيث لن يتم الحذف الا اذا تساوي Session("us_id") =us_id مما يعني ان كاتب الموضوع هو من حذفه .

والمفروض ان تعطل زر الحذف اذا لم يكن الزائر الحالي هو صاحب الموضوع عن طريق عمل استعلام .

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

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

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