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

مساعدة بخصوص قواعد البيانات ASP

بدأه lyes djamel في 30 أغسطس 2011 · 5 رد · 2,976 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أنا معتاد على برمجة قواعد البيانات بواسطة الـ Data Set و الـ TableAdapter كما هو معروف و ذلك عندما أريد إدخال بيانات إلى قاعدة بيانات عن طريق Form به العديد من TextBoxes و DropDownList

المهم عندما جئت لبرمجة موقع ويب عن طريق الـ ASP اختلط علي الأمر قليلا لأني قرأت كتاب و عديد Tutorials و لكني لم اجد شرح وافي بالتفصيل

فهل لي بمساعدة ، و للتوضيح اكثر أنا أريد مثلا إدخال معلومات عن موظف عن طريق Form و ليس عن طريق DataGridView

أريد في التفصيل أيضا طريقة الربط مع قاعدة البيانات ، علما أني أستعمل Visual studio 2010 ultimate and SQL SERVER 2008

شكرا جزيلا و أعتذر عن الغطالة

و ها هو مرفق يحوي البداية شكرا

#2

أين الردود من فضلكم

أنا فعلا مستعجل

لأني بحثت تقريبا كل المنتدى و استغربت من عدم وجود مماثل لطلبي ، او ان هناك تسمية أخرى

للتدكير : أنا أريد إدخال بيانات لقاعدة بيانات SQL SERVER 2008 عن طريق نمودج إدخال يحوي عديد الــ TextBoxex and Other Controls و ليس عن طريق GridViez

علما اني أعلم كيفية هذا و لكن في الـ WindowsApplication و لكن في الـ ASP.NET لا أعرف كيف

من فضلكم أريد شرح شامل من طريقة رفع قاعدة البيانات إلى المجلد المخصص إلى الاتصال بها إلى إدخال البيانات إليها عند ضغط Button دخال مثلا

شكرا للجميع و سامحوني على الازعاج و لكني جد مستعجل من فضلكم

و بارك الله فيكم و لكم في علمكم جميعا

أنا مستعمل : Visual Studio 2010 SQL SERVER 2008 VB.NET

#3

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

اخي ببساطه قم بربط الـ FormView بالاداه SqlDataSource والتي تم اعدادها مسبقا من ثم يمكنك ضبط الخاصيه DefaultMode الى Insert

−1

.:: Wish to become better and better ::.

#4

السلام عليكم :)

عيد مبارك وكل عام وجميع المسلمين في خير حال وعافية :)

حسناً إذن..

أول خطوة يا صاحبي ستقوم بها هي تغيير أسماء -بواسطة الخاصية id - مربعات النص والقوائم المنسدلة بحيث نستطيع أن نستدل عليها لاحقاً عندما نريد تعيينها لتذهب لقاعدة البيانات...

والتالي مثال:

1. بفرض أنه لدينا قاعدة بيانات اسمها DB تمت استضافتها على سرفر ميكروسوفت اس كيو ال

وفيها جدول للموظفين employee.. وهذا الجدول يحوي على الأعمدة التالية:

المعرف id وهو ترقيم تلقائي ولا يقبل القيم المتكررة وفي نفس الوقت المفتاح الأساسي (وبدون المفتاح الأساسي لا يمكن إدخال القيم إلى قاعدة البيانات بطريقة مباشرة)

الاسم، وهو نص 256 حرف كحد أقصى

العمر، رقم صحيح

المؤهل، نفس فكرة النص

الإيميل، نفس فكرة الاسم

العنوان، نص طويل جداً لأن بعض العناوين لا يمكن تلخيصها أو اختصارها (يستحسن أن يكون من نوع text)

طبعاً تستطيع إضافة رقم الهاتف والرمز البريدي والدولية ... الخ لكن لنكتفي بهذه الاعمدة كمثال...

2. الخطوة التالية هي انشاء صفحة إدخال بيانات الموظفين... أي تجهيز نموذج الإدخال للبيانات

نقوم بإنشاء صفحة بداخل الموقع وليكن اسمها AddEmployees.aspx

نقوم بإدراج النصوص اللازمة ومربعات النص اللازمة لإدخال البيانات للصفحة، ويفضل دائماً أن نعطي لكل مربع نص اسماً (معرف ID) مشابه لاسم الخانة التي سيقوم بإدخالها في قاعدة البيانات..

مثلاً...

لدينا في قاعدة البيانات عامود الاسم name فيفضل أن يكون اسم مربع النص الذي سيكتب المستخدم فيه اسمه يحمل خاصية ID ولها القيمة nameTextBox

كذلك بالنسبة للعمر Age يفضل أن يكون مربع النص الخاص به له اسم له علاقة بعمله مثل ageTextBox

حتى ولو استخدمت قائمة منسدلة لتقوم بتحديد رقم محدد يفضل أن يكون اسمها شيء من قبيل AgeDropDownList

طبعاً هذا ليس شرطاً.. لكن المهم أن يكون لها أسماء واضحة حتى تعرف تتحكم بها لاحقاً وبوضوح!

3. حسناً بعد ما أنتهينا من ادخال الأدوات اللازمة لإدخال البيانات في الصفحة نقوم بإنشاء زرار Button والذي سيكون الهدف منه هو ارسال البيانات الموجودة في الصفحة إلى قاعدة البيانات..

حتى الآن قمنا بتجهيز نموذج الإدخال.. والآن سنقوم بجعل هذا النموذج يعمل..

ومن هنا لدينا طريقين (أو قد تكون ثلاثة طرق)..

- الطريق الأول (وهو الأبسط) هو استخدام SqlDataSource مباشرة في الصفحة وجعلها تقوم بجميع عمليات الاتصال والاستعلام.

- والطريق الثاني (وهي الطريقة العامة) هي عن طريق استخدام ملف DataSet وبداخله TableAdabter وهذه الطريقة مناسبة عندما تريد أن تقوم بمجموعة من الاستعلامات المتكررة والتي تريد حفظها مسبقاً ومن ثم استخدامها عند الحاجة بدون أن تضع أداة اتصال في كل مكان تريد فيه الاستعلام من قاعدة البيانات.

- والطريق الثالث هو عمل كل شيء بأسلوب برمجي (وهو الأصعب) لكنه مناسب جداً عندما تريد أن تقوم بالاستعلام من قاعدة البيانات مع إضافة مجموعة من العمليات الأولية على البيانات قبل إرسالها مثل ارسال رقم الآي بي الخاص بالمستخدم وتخزينه في ثلاث أعمدة في قاعدة البيانات...

وفي هذا المثال سأستخدم الطريقة الأولى، وسأترك الطريقة الثانية والثالثة لمن يريد المشاركة معنا بتفصيل خطواتها.

حسناً إذن...

4. نقوم بإضافة الأداة الثورية التي اسمها SqlDataSource إلى الصفحة

ومن سهم المهام السريعة ننقر على Configure Data Source

نحدد مصدر البيانات وهو قاعدة بياناتنا DB من القائمة المنسدلة التي تظهر أمامنا، وإن لم تظهر نقوم بالنقر على زرار New Connection ونختارها حسب نوعها Microsoft SQlServer ثم ننقر على Contenue ثم نحدد اسم السرفر ومن ثم نختار قاعدة البيانات من القائمة المنسدلة ومن ثم Test حتى نتأكد من أنه يمكننا الوصول إلى قاعدة البيانات، وفي حالة نجاح عملية الاختبار ننقر على OK وفي حالة عدم نجاحها، عُد وتأكد مرة أخرى من اسم السرفر واسم قاعدة البيانات حتى تنجح عملية الاختبار.

سيعود البرنامج إلى مربع حوار اختيار الاتصال وسيحدد اسم قاعدة بياناتنا بداخله.. ننقر على التالي Next

سيظهر لنا رسالة مفادها (هل تريد حفظ الاتصال الذي قمت بتعيينه في ملف Web.Config او سيتم حفظه بداخل الصفحة هذه فقط؟ الغرض هنا إذا ما كنت تريد اعادة استخدام الاتصال مع قاعدة البيانات مرة أخرى في صفحات أخرى فيمكنك حفظه واستخدامه لاحقاً حيث سيظهر في أو خيار عند تحديد مصدر الاتصال، يفضل أن نقول نعم نريد بوع علامة الصح في المكان المطلوب وتسمية الاتصال باسم مفيد حتى نميزه لاحقاً. ثم Next

سيظهر لنا مربع حوار فيه خيارين في البداية نختار الأول والذي ينص على تحديد الاستعلامات التي تريد بنفسك، ستظهر مجموعة من التبويبات الخاصة بنوع الاستعلام، اختر تبويب الإدخال أو الإدراج Insert وأكتب استعلام الإدخال المناسب (تستطيع استخدام زرار QueryBuilder لتسهيل العملية)

ثم التالي.. ثم انهاء

5. حسناً عدنا الآن إلى الصفحة نقوم بحفظها ونتأكد من أن كل البيانات مكتوبة في مكانها الصحيح خاصة أداة SqlDataSource، ننقر عليها ونبحث عن خاصية Connection String فإن كان نص الاستعلام يشير إلى قاعدة بياناتنا إذن نحن في الطريق الصحيح، وإن كانت فارغة أو فيها شيء لا نعرف عنه شيئاً نقوم بالتأكيد على اختيار نص الاستعلام المناسب لقاعدة بياناتنا،حيث سيظهر الاسم الذي قمنا بحفظ الاتصال فيه سابقاً في قائمة منسدلة نختاره وثم نبحث عن الخاصية المهمة التالية

وهي خاصية استعلام الإدخال Insert Query

ندخل إليها سنجد مربع حوار في بدايته نص الاستهلام الذي أدخلناه سابقاً، وإن كان فارغاً تأكد أن نص الاستعلام يشبه التالي:

INSERT INTO employees
                      (name, age, qualification, email, address)
VALUES     (@name,@age,@qualification,@email,@address)

حيث أن أي اسم يبدأ بعلامة @ يعني أنه اسم وسيط Parameter سنستخدمه للدلالة على الأداة التي سيأخذ منها البيانات، وتحت صندوق الاستعلام تجد قائمة المفترض أن تجد فيها جميع أسماء الوسطاء وإن كانت فارغة ننقر على الزرار المسمى بـ Referesh Parameters وسنجدها ظهرت فيه..

6. ننقر على كل وسيط ونختار من القائمة الجانبية مصدره Parameter Source حيث يجب أن يكون نوع جميعهم هو Control ونحدد لكل واحد من هذه الكنترولات اسم الأداة ControlID التي حددناها مسبقاً في الصفحة حيث ستجد أسماء الأدوات التي أضفناها في الصفحة موجودة في قائمة منسدلة نختار لكل وسيط اسم الأداة المناسب له بحيث تصبح القائمة كالتالي:

name		value
@name		nameTextBox.text
@age		ageTextBox.text
@qualifecation	qualifecationTextBox.text
@email		emailTextBox.text
@address	addressTextBox.text

ثم أوكي...

الآن انتهينا من تجهيز الاتصال

7. نقوم بحفظ الصفحة والنقر مرتين على زرار الإدخال الذي وضعناه مسبقاً.. ستفتح لنا نافذة الكود نكتب الكود التالي ليصبح محتوى صفحة الكود شبيهه بالتالي:

Partial Class addEmployee
    Inherits System.Web.UI.Page

    Protected Sub SendButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SendButton.Click
        SqlDataSource1.Insert()

    End Sub
End Class

أي أننا أضفنا اسم أداة الاتصال SqlDataSource1 ومن ثم نقطة ثم اخترنا أمر الإدراج insert فقط.

وبدون أي كود آخر..

طبعاً مثل تطبيقات الوندوز يستحسن أن تضع جملة شرطية للتأكد من أن البيانات تم إدخالها إلى قاعدة البيانات بسلام وأنه لا يوجد هناك أي خطأ لتظهر رسالة تفيد أن كل شيء على ما يرام وأن البيانات تم إدخالها إلى قاعدة البيانات فعلاً، وإن لم يحصل ذلك يقوم بإظهار رسالة تفيد حدوث خطأ ما، لا تقلق استخدام الكودات في Asp.Net هو نفسه استخدامها في تطبيقات الوندوز الأخرى كانت سي شارب أو فجوال بيسك دوت نت!

8. قم بمعاينة الصفحة.. أضف البيانات لمربعات النصوص... انقر على زر الادخال..

===============================================

هذه هي الطريقة الأولى والأبسط.

طبعاً يفضل إضافة أدوات التأكد من القيم المدخلة Validation Controls من نوع Requaered Filde لكل صندوق نصي أو أداة أخرى تستخدمها منعاً لإرسال أي قيم فارغة عند النقر على زر الإرسال...

وهذا رابط موضوع يتحدث عنها:

/index.php?showtopic=247117

وآسف على التأخير.. فهذا الشرح تطلب مني ثلاث ساعات متواصلة للتأكد من كل خطوة وعمل الخطوات البديلة!

هذا غير أن الكهرباء أنطفأت أكثر من مرة وهذه فترة عيد... أي أنه لا تتوقع أن تجد مساعدة بسرعة!

حسناً إذن...

مع تمنياتي لك بالتوفيق في مشروعك :)

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

2
#5

انا عندي مشكلة في الادخال الى صف معين بــ الفيجوال بيسك دوت نت 2008 ياريت تساعدونا

#6

شكرا اخي AmeenSnw

شرح وافي وكافي وماقصرت

ياليت لو تشرح لنا الطريقة الثاينة تكرماً فأنا بحاجة ماسة لها او تدلنا على موقع فيه شرح عنها .

وشكرا لك

تم تعديل هذه المشاركة بواسطة محمد العوبثاني في 23 نوفمبر 2011 في 11:03

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

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

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

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

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