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

لتسريع عملية الاستعلام في برنامجك استخدم؟؟؟؟؟

مغلق
بدأه MEGREN في 10 يونيو 2005 · 4 رد · 839 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

من الأخطاء التي يخطيئ فيها كثير من المبرمجين هي عدم التدقيق في سرعة البرنامج ومن أهم الحلول هو اللإجراء المخزن (Stored Procedure):

1.عند تصميم برنامج يتطلب فيه مثلا الاستعلام عن user_name في قاعدة بيانات SQL فأنك تحتاج إلى سرعة الستعلام والتحقق من وجود هذا المستخدم وإظهار النتيجة فلا بد من وجود Stored Procedure

في هذه القاعدة

أولا ننشئ Stored Procedure من قاعدة البيانات التي تريد عليها الاستعلام بالنقر بالزر اليمن على قاعدة البيانات ومن ثم النقر على Stored Procedures ثم انشاء جديد تظهر لنا نافذة

CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS

[OWNER] هي اسم الإجراء المخزن

ندخل اي اسم مثال mm

[PROCEDURE NAME] هو المتغير ولابد من إضافة @ للتسمية

مثال نخلh@ ثم نوع البيانات المدخلة ثم نضيف جملة الاستعلام

وهذا مثال كامل:

<<<<<<<<<<<<<<<<<<

CREATE PROCEDURE mm @h varchar(30)

AS

select [user_name] from users = @h

GO

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

عامود باسم

user_name

>>>>>>>>>>>>>>>>>>

وبعد نشاء إجراء مخزن نعمل له عملية تجربة بالنقر على زر

Check Syntax

وبعدها نكون عرفنا اسم الإجراء mm

والمتغير الذي أنشأناه @h

...........................................

ثانيا بعد الذهاب الvb.net

نكون أنشأنا form خاص بالمستخدمين يتكون من textbox ,button

ثم في الحدث عند النقر على button نكتب الكود التالي:

Dim con As New SqlClient.SqlConnection(constr)

Dim dr as SqlClient.SqlDataReader

Dim constr as string="مصدر قاعدة البيانات "

Dim adb As New SqlClient.SqlDataAdapter("mm", constr)

try

adb.SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@h", System.Data.SqlDbType.VarChar, 30))

adb.SelectCommand.Connection.Open()

adb.SelectCommand.CommandType = CommandType.StoredProcedure

adb.SelectCommand.Parameters("@h").Value = TextBox1.Text

dr = adb.SelectCommand.ExecuteReader

If dr.Read = False Then

MsgBox("Invalid User Name!!!", MsgBoxStyle.Exclamation)

adb.SelectCommand.Connection.Close()

Exit Sub

Else

Dim X AS New FORM

X.SHOW

End If

Catch ex As SqlClient.SqlException

adb.SelectCommand.Connection.Close()

MsgBox(EX.MASSEGE, MsgBoxStyle.Critical)

End Try

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

وأتمنى أن لا أكون قد أطلت عليكم

وصلى الله وسلم على نبينا محمد

البرمجه منطق وذوق وخدع .............والمعرفة طريق سهل وعذب

#2

مشكووووووووووور

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

#3

جزاك الله عنا الف خير

و تسلم على المعلومات

تم تعديل هذه المشاركة بواسطة cool_zat في 11 يونيو 2005 في 09:00

#4

لقد سددت لنا ثغرة هامة جداً فى البرامج التى يتم إنشائها.

ولك كل الشكر على هذا، جهد طيب يا أخى (h)

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

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

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

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

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

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