تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[SQL] عمل Stored Procedures يفحص الاسماء قبل الاضافة
#1
اخواني الاعزاء  كيفية عمل Stored Procedures  يفحص الاسماء قبل الاضافة اذا كان موجودة و لا ان كانت موجود يظهر رسالة وان لا فايضيفها .
الرد }}}
تم الشكر بواسطة:
#2
سلام

هذا مثال

اول شيء نعمل storedprocedure بهذه الطريقه تقريباً والافضل تختر له اسم مناسب بدل الاسم الافتراضي
ونلاحظ ان الارقام 99999 و55555 انا اخترتها بشكل عشوائي بس اهم شي ما يكون رقم صغير ولا كبير جدا عشان هذه الارقام تفيدني في نوع الرساله اللي راح اظهرها للمستخدم من حيث اذا كان الاسم موجود من قبل ولا البيانات غير صحيحه
كود :
CREATE PROCEDURE dbo.StoredProcedure1
    @name varchar(50) = ''  ,
    @phone int = 0
AS

    /* التأكد من إدخال بيانات */
    IF RTRIM(@name) = ''
    BEGIN
        RETURN 99999
    END

    /* التأكد من موجود سجل مسبق */
    IF EXISTS (SELECT [name] FROM [table] WHERE [name]=@name )
    BEGIN
        RETURN 55555
    END

    BEGIN TRY
        /* إدخال البيانات */
        INSERT INTO [table] ([name], [phone]) VALUES (@name, @phone)
    END TRY
    BEGIN CATCH
        RETURN -1
    END CATCH

    RETURN 0

الحين نجي لطريقت التعامل مع storedproceure عن طريق vb.net وهذا ان شاء الله انه سهل ما يحتاج شرح
يدوب الاضافه الغريبه اللي ممكن تشوفها اضافت parameter خاص لقراءه الرقم اللي راح يرجع بالنتيجه
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Using conn As New SqlConnection(connectionString)

        Using cmd As New SqlCommand("StoredProcedure1", conn)
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Parameters.AddWithValue("@name", txtName.Text.Trim)
            cmd.Parameters.AddWithValue("@phone", txtPhone.Text.Trim)

            Dim param As New SqlParameter("returnValue", Nothing)
            param.Direction = ParameterDirection.ReturnValue
            cmd.Parameters.Add(param)

            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()

            Dim retVal As Integer = cmd.Parameters("returnValue").Value

            MsgBox("Return Value:  " & retVal)

            Select Case retVal

                Case 0
                    MsgBox("تمت إضافة البيانات")

                Case 99999
                    MsgBox("يجب إدخال بيانات")

                Case 55555
                    MsgBox("الاسم موجود مسبقاً")

                Case Else
                    MsgBox("Return Value:  " & retVal & vbNewLine & "فشل")

            End Select

        End Using

    End Using

End Sub

موفقين
متغيب
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود
#3
السلام عليكم أخي العزيز ورحمة االله وبركاته
يقول الرجل العادل : "أعلم الناس من جمع علوم الناس إلى علمه"
عذرا أخي الطالب، أريد أن أعقب على مشاركتك ولا يعني تعقيبي لا سمح الله أن لا قيمة لما تفضلت به "منكم نتعلم ونستفيد فبالتواضع يعمر العلم ويزكو".
يمكن أيضا الوصول إلى نفس الفكرة من خلال DataReader Object
كود :
Dim dr as SqlDataReader
كود :
dr = cmd.ExecuteReader
كود :
IF dr.HasRows Then
msgbox("The name Exists")

end If
واعبد ربك حتى يأتيك اليقين
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود , الطالب
#4
اشكركم على المرور والردود المفيدة ولكن كانت غايتي هي ما كتبة الاخ طالب .
اشكرك اخي khodor1985
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود
#5
سلام

أشكرك أخي khodor1985 بما تفضلت به

datareader تستخدم في القراءه ولا نحتاجها في الاضافه أو التحديث

نحتاجها اذا اردنا قراءت بيانات كثيره جدا جدا لا ينفع معها datatset ولا حتى datatable وخصوصا إذا كانت مواصفات جهاز المستخدم ضعيفه.

موفقين
متغيب
الرد }}}
تم الشكر بواسطة: Sajad , مبرمج بلا حدود
#6
عذراً أخي العزيز فأنا أختلف معك في ما تفضلتم به فيمكن استخدام data reader لفحص الأسماء قبل الإضافة وإذا أردت الدليل فسأرسل لك مثال على ذلك.
شكرا لتجاوبكم
واعبد ربك حتى يأتيك اليقين
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود
#7
جزاكم الله خير لو في مثال تطبيقي حتى يستفاد الجميع
وفقكم الله
الرد }}}
تم الشكر بواسطة:
#8
(01-08-15, 12:12 AM)مبرمج بلا حدود كتب : جزاكم الله خير لو في مثال تطبيقي حتى يستفاد الجميع
وفقكم الله

اخي الكريم سويت مثال بسيط جدا باستخدام الاجراءات المخزنة لكن في اكسس وايضا  معمولة مسبقا ببرنامج اكسس 2010 وليس بالكود .
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] مشكلة في كود الاضافة والتعديل في المشروع khaled12345 11 4,273 15-07-17, 02:17 AM
آخر رد: سعود
  [كود] المساعدة في معرفة اين الخطأ في كود الاضافة لصورة موظف وادي العوضي 2 1,803 11-07-17, 05:56 PM
آخر رد: وادي العوضي
  كود الاضافة للقاعدة شمس الدين 03 12 4,369 08-12-16, 06:40 PM
آخر رد: شمس الدين 03
Photo [سؤال] عندى سؤال فى البحب و التعديل و الاضافة مع بعض alims 6 3,707 18-01-16, 05:20 PM
آخر رد: alims
  [VB.NET] سوال كيف يمكن الاضافة على ثلاثة جداول واكثر قناص المدينة 6 3,862 14-08-15, 08:22 PM
آخر رد: مجروحه
  كيف أستخدم stored procedure ؟؟ alzahrani 7 3,497 24-11-14, 09:42 PM
آخر رد: سعود
  عمل RUN ل stored procedure محاسب يوسف 0 1,519 14-10-14, 03:17 PM
آخر رد: محاسب يوسف
Wink [كود] الاضافة الى قاعدة البيانات هيتوووو 3 2,379 05-05-14, 05:49 PM
آخر رد: سعود
  عرض الاسماء التي تم اضافتها في شهر محدد atefkhalf2004 1 2,038 31-01-14, 03:40 AM
آخر رد: ممدوح الخطيب
  [سؤال] مشكلة في الاضافة الى قاعدة بيانات Sql OsamaVB 2 2,433 05-01-14, 04:03 PM
آخر رد: زكريا النابهي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم