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

[ درس بالصور ] بإستخدام فيجوال ستيديو 2005 ( كيفية إنشاء SQL Database والإتصال بها وعرض بيانات الحقول )

مغلق
بدأه أبـو فـارس في 10 ديسمبر 2006 · 28 رد · 5,413 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

main.gif

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

الصلاة والسلام على أشرف الأنبياء والمرسلين نبينا محمد وعلى آله وصحبه أجمعين ( أما بعد ) :

طبعاً الدرس باين من عنوانه :) ونبدأ مباشرة :

أولاً نقوم بفتح برنامج فيجوال ستيديو 2005

1.gif

ثم نقوم بإنشاء Web Site جديد

2.gif

3.gif

نبدأ أولاً في إنشاء قواعد البيانات بالضغط على هذه الأيقونة

Add new item بما معناه إضافة عنصر جديد

ثم نختار SQL Database

4.gif

بتضهر لك رسالة ( هل تريد إنشاء قاعدة البيانات داخل مجلد App_Data ؟ ) نضغط نعم

6.gif

سنجد الداتابيس في نافذة Server Explorer

نضغط بالفارة باليمين على المجلد Tables ثم نختار Add New Table

7.gif

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

8.gif

الأن العمود userID مفتاح رئيسي ( Primery Key ) نختار العمود userID ونضغط على أيقونة المفتاح كما في الصورة التالية

9.gif

الأن سيكون لا يقبل بيانات متكررة لأنه مفتاح رئيسي فبياناته يجب أن لا تتكرر

والأن نريد أن نجعل العمود userID ( ترقيم تلقائي ) بحيث عن كل إضافة صف جديد يتم إضافة رقم جديد لهذا العمود تلقائياً

في الخصائص أسفل الأعمدة اعمل كما في الصورة التالية

10.gif

يتبع ...

تم تعديل هذه المشاركة بواسطة أبـو فـارس في 10 ديسمبر 2006 في 10:03

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#2

وبعد الإنتهاء نضغط على حفظ ( كما في الصورة التالية )

11.gif

ونكتب أسم الجدول users

12.gif

الأن نريد تعبئة الجدول بيوزر وباسورد لنقوم بتجربتها لاحقاً

في نافذة Server Explorer اضغط بالزر الأيمن من الفارة على الجدول users داخل المجلد Tables ثم أختر Show Table Data

13.gif

وتكتب هذه البيانات داخل الجدول ثم تغلق الجدول

14.gif

الأن تذهب إلى الصفحة Default.aspx

وتضيف هذه الأدوات من نافذة الأدوات

15.gif

الخطوط التي باللون الرصاصي الفاتح والصغيرة هي أسامي الأدوات وهي الـ ID ويتم تعديل إسمها عن طريق الـ Properties كما في الصورة

16.gif

الأن نبدأ في البرمجة

من نافذة الـ Solution Explorer نفتح الملف web.config

17.gif

ضلل الكود

 <connectionStrings/>

وألصق بداله هذا الكود

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

وهو كود خاص بمعلومات عن قاعدة البيانات

الأن إذهبة إلى الصفحة Default.aspx

إضغط مرتين على الزر ( Sign In )

وفي أول سطر أضف

Imports System.Data.SqlClient
Imports System.data

وبعد الكود

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

أضف هذا الكود

'هنا نقوم بتعريف نص يحتوي على معلومات  قاعدة البيانات التي كتبناها في صفحة web.config
Dim connString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
'نقوم بالإتصال بالداتا بيس
Using myConnection As New SqlConnection(connString)
'نقوم بإنشاء الـ SQL query في متغير نصي
Const sql As String = "SELECT * FROM users"

'نقوم بتنفيذ أمر الـ query
Dim myCommand As New SqlCommand(sql, myConnection)

'هنا نقوم بإنشاء DataSet
Dim myDataSet As New DataSet

'ثم نقوم بإنشاء DataAdapter لكي يتواصل بين الـ DataSet وقاعدة البيانات
Dim myAdapter As New SqlDataAdapter(myCommand)
myAdapter.Fill(myDataSet)

'هنا نقوم بإضافة دالة من صنعنا وتحتوي على الـ DataSet و اليوزر والباسورد
CheckRows(myDataSet, userName.Text, userPass.Text)

'أغلق الإتصال
myConnection.Close()


End Using

الأن نريد صنع الدالة

CheckRows(myDataSet, userName.Text, userPass.Text)

وما نريد فعله بالضبط هو عندما يقوم المستخدم الضغط على Sign In فإنه يبحث عن معلومات اليوزر والباسورد ويرى إن كانت موجوده أم لا

وهذه هي الدالة قم بكتابتها بعد End Sub الخاص بالـ Protected Sub Button1_Click

 Private Sub CheckRows(ByVal dataSet As DataSet, ByVal userName As String, ByVal userPass As String)
Dim table As DataTable
Dim row As DataRow

'هنا نقوم بإنشاء فور لوب بحيث يتأكد من كل حقل في الصف من الجدول
For Each table In dataSet.Tables
For Each row In table.Rows

If row(1) = userName And row(2) = userPass Then
right.Visible = True
End If

Next row

If Not right.Visible = True Then
wrong.Visible = True
End If

Next table
End Sub

row()

هنا بإمكانك كتابة رقم العمود مثل ما كتبنا إحنا

أو تكتب اسم العمود مثل هكذا

row("userName")

الأن كل شي جاهز ما عدا حاجه وحده

إحنا عملنا في الدالة CheckRows إذا وجد في قاعدة البيانات اليوزر والباسورد صحيحه أضهر right.Visible = True وإذا لم تجدها أضهر wrong.Visible = True

بحيث يجب أن تكون الـ Label للنتيجه مخفيه منذ البدايه ولا تضهر إلا لما يضغط المستخدم على Sign In

إذهب إلى Default.aspx

وأضغط مرتين في أي مكان في الصفحة

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

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

End Sub

وتكتب فيها بكل بساطه

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

right.Visible = False

wrong.Visible = False

End Sub

ثم تضغط الأن زر تشغيل

18.gif

قد تضهر لك أول مره هذه الرساله تفيد بأن الـ Debugging معطل هل تريد تفعيله من ملف web.config إضغط نعم

19.gif

والأن نختبر عملنا

بكتابة اليوزر

muhmmad

والباسورد

aaa123

ثم تضغط Sign In

والنتيجة ؟؟

- Right :)

20.gif

( أتمنى أني أفدتكم ) ولأي سؤال أو استفسار أنا حاضر.

تقبلوا أطيب تحيه

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

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#3

يارك الله بك

درس جميل ومفيد وخصوصا للمبتدئين

اكثر ما اعجبني بهذا الدرس هو كود فحص الجداول جدول جدول ثم صف صف .......... فكرة جميله

logosite.gif
#4
basharss كتب:
يارك الله بك

درس جميل ومفيد وخصوصا للمبتدئين

اكثر ما اعجبني بهذا الدرس هو كود فحص الجداول جدول جدول ثم صف صف .......... فكرة جميله

الله يبارك فيك شكراً لك يالغالي

أنا هالدرس أهديه للمبتدئين لأنه والله أصعب الأمور بداياتها وبعدها ينطلق مثل الصاروخ :)

ودامه عجبك كود فحص الجداول جدول جدول ثم صف صف

أجل بعجبك أكثر

الكود بالإمكان فحص جدول جدول وصف صف و ((( عمود عمود ))) برضوا , يعني يشيك على كل الداتا بيس

بإضافة الكود التالي يتم البحث عن عمود عمود

داخل الفور الخاص بالصف صف أكتب

For Each column In table.Columns
Response.Write(row(column))
Next column

وطبعاً تعرف قبل column

'Dim column As DataColumn

أطيب تحيه

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#5

جزاك الله خير بما صنعت يابو فارس ونتمنى منك المزيد :)

#6

درس رائع بارك الله فيك

#7

اللع يجزاك خير يا ابو فارس ..

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

وهي (DataSet) .. أنا ما أعرف كيف التعامل معها لأن عندي مشروع وأريد كيف عملها .. وكذلك (Session)

واذا تبي توضيح أكثر عن المشروع قلي ..

موفق عزيزي ..

#8

اخي لدي سؤال

في هذه الجملة

Const sql As String = "SELECT * FROM users"

اخذنا محتويات الجدول users فقط

لماذا لا نجعله في datatable بدلا من dataset

المهم اخي لدي مشكلة لم استطع حلها ارجو ان تساعدني

اخي انا عبئت الجدول user

مباشرة في datatable

بهذا الكود

Dim constr As String = "Data Source = .\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"

		Dim cn As New SqlConnection(constr)
		cn.Open()
		Dim cmd As New SqlCommand("select * from [user]", cn)
		Dim rd As SqlDataReader

		rd = cmd.ExecuteReader
		Dim dt As New DataTable
		dt.Load(rd)

واستخدمت هذه الـ function للتأكد من الإسم ولكمة المرور

  Public Function check(ByVal str1 As String, ByVal str2 As String, ByVal dt As DataTable) As Boolean
		Dim row As DataRow
		Dim r As Boolean = False


		For Each row In dt.Rows

			If row(1) = str1 And row(2) = str2 Then
				r = True
			End If
		Next row
		Return r
	End Function

المشكلة ان حلقة for each لا تنفذ

مالمشكلة في هذا الكود

تم تعديل هذه المشاركة بواسطة عبد المعز في 11 ديسمبر 2006 في 12:31

#9

السلام عليكم ارجو من الله ان يجازى الاخ بما يفيد بة المسلمين

وارجووووووووو منة ان يعرض باقى الدروس حتى تتم الاستفاتة من هذة اللغة الممتعة

#10
ab_od@1 كتب:

جزاك الله خير بما صنعت يابو فارس ونتمنى منك المزيد :)

الله يجزاك خير شكراً لك على مرورك يالغالي ab_od@1

عبد المعز كتب:
درس رائع بارك الله فيك

كلك ذوق تسلم يارب عبدالـمعز

DBMS كتب:
اللع يجزاك خير يا ابو فارس ..

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

وهي (DataSet) .. أنا ما أعرف كيف التعامل معها لأن عندي مشروع وأريد كيف عملها .. وكذلك (Session)

واذا تبي توضيح أكثر عن المشروع قلي ..

موفق عزيزي ..

حياك الله أخوي الغالي DBMS

سؤالك مو واضح يالغالي ياليت توضح أكثر وش تبي بالضبط

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

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

ويتم إنشاء DataAdabter ليقوم الربط بين الداتا سيت وقاعدة البيانات

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

وسأقوم بشرح الوضع المنفصل لاحقاً إن شاء الله تعالى

وبالنسبة للـ Session() ولا أسهل منها :)

تقوم بتعريف

Session("DBMS") = "ArabTeamMember"

هذا يتم تعريفه في أي صفحه تريد أن تعرض بيانات هذا المتغير في صفحات أخرى

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

Response.Write(Session("DBMS"))

وتضهر النتيجه في أي صفحه في الموقع ArabTeamMember

وأي أسئله أخرى أنا حاضر

أطيب تحيه :)

عبد المعز كتب:
اخي لدي سؤال

في هذه الجملة

Const sql As String = "SELECT * FROM users"

اخذنا محتويات الجدول users فقط

لماذا لا نجعله في datatable بدلا من dataset

المهم اخي لدي مشكلة لم استطع حلها ارجو ان تساعدني

اخي انا عبئت الجدول user

مباشرة في datatable

بهذا الكود

Dim constr As String = "Data Source = .\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"

		Dim cn As New SqlConnection(constr)
		cn.Open()
		Dim cmd As New SqlCommand("select * from [user]", cn)
		Dim rd As SqlDataReader

		rd = cmd.ExecuteReader
		Dim dt As New DataTable
		dt.Load(rd)

واستخدمت هذه الـ function للتأكد من الإسم ولكمة المرور

  Public Function check(ByVal str1 As String, ByVal str2 As String, ByVal dt As DataTable) As Boolean
		Dim row As DataRow
		Dim r As Boolean = False
		For Each row In dt.Rows

			If row(1) = str1 And row(2) = str2 Then
				r = True
			End If
		Next row
		Return r
	End Function

المشكلة ان حلقة for each لا تنفذ

مالمشكلة في هذا الكود

لازم تفهم يالغالي ان الداتابيس عشان تتصل بها تستخدم وضعين وضع منفصل مثل اللي سويته انا قبل شوي بالتمام 100% , او وضع متصل وراح اجيب درس يبين هالوضع وأيش ميزته عن الوضع المنفصل:) وهو فيه بعض الأكواد اللي انت ضايفها :)

أنت مستخدم في الأكواد أوامر غير اللي انا كتبتها واللي تستخدمها أوامر للوضع المنفصل

على العموم حلل الأكواد اللي كتبتها وامشي عليها لأني جايبها من الدوكمنتيشن تبع الفيجوال ستيديو 2005 يعني إن شاء الله مضمونه وطريقه ممتازه 100%

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

أطيب التمنيات لك عزيزي عبدالمعز

ابوعلي كتب:
السلام عليكم ارجو من الله ان يجازى الاخ بما يفيد بة المسلمين

وارجووووووووو منة ان يعرض باقى الدروس حتى تتم الاستفاتة من هذة اللغة الممتعة

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

تسلم يا بو علي ردك أسعدني

وإن شاء الله باقي الدروس في الطريق :)

أطيب تحيه ..

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#11

قد يتسائل البعض بما الفرق بين الوضع المنفصل والوضع المتصل

على حسب فهمي حتى الأن

في الوضع المنفصل يتم أخذ نسخة من قاعدة البيانات وإنشائها في DataSet بإستخدام DataAdapter

ويتم التعامل مع الداتا ست وبعد الإنتهاء من التغيرات التي قد تحصل للداتا ست يتم إرسال البيانات من الداتا ست إلى قاعدة البيانات

بإستخدام DataAdapter بما معناه أنه هو الموصل بين الداتا ست وقاعدة البيانات

ولكن في الوضع المتصل يتم الإتصال بقاعدة البيانات مباشرة ويتم تحديثها حال أي أمر يطرأ عليها في نفس الوقت

وهي أكثر عملياً وسرعة

وهنا طريقة الإتصال بقاعدة البيانات في الوضع المتصل وطريقة عرض بيانات الحقل

وجدت كود سهل جداً وأصبح ميسر الأن لإستخدام هذا الوضع دائماً

أنا أستخدم أكواد السي شارب لكن ترجمته لكم إلى فيجوال بيسك لمن يريده

C#

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
		//This is Old ASP .Net 1.0   :   SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["DatabaseConnectionString1"]);
		con.Open();
		SqlCommand cmd = new SqlCommand("SELECT * FROM users", con);
		SqlDataReader dr = cmd.ExecuteReader();
		while (dr.Read())
		{
			Response.Write(dr["userName"] + "<br>");
		}
		con.Close();

Visual Basic

Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
		con.Open()
		Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM users", con)
		Dim dr As SqlDataReader = cmd.ExecuteReader()

		While dr.Read()

			Response.Write(dr("userName") + "<br>")
		End While

		con.Close()

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#12

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

بالنسبة للـ(session) جربتها .. وأبشرك مضبوطة ولله الحمد ..

وأما مشكلتي مع الـ(DataSet) ..

فأنا أريد آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية

بحيث ما يتكرر الصف

بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..

طبعا الـ(20) صف راح أحطها بالداتا ست ..

فما الحل المناسب ؟؟

الله لا يهينك ..

تم تعديل هذه المشاركة بواسطة DBMS في 12 ديسمبر 2006 في 18:46

#13

موضوع جميل وشرح أجمل , وبارك الله فيك ,

لكن لي ملاحظة أخشى كما حدث مع العديد من المواضيع والصور التي كانت مربوطة لمواقع خارجية أن تختفي هذه المواقع ومعها الصور ويصبح الدرس عقيم (ربما بعد مدة طويلة سنة أو سنتين من الآن) لذلك إن قمت بتغيير الصور ووضعها ورفعها على سيرفر الفريق سنضمن بإذن الله وجودها مادام المنتدى موجودا بإذن الله ,,

ورفع الصور سريع ومباشر من الرابط في الأعلى من الصفحة الرئيسية ,,

(سيتم حذف هذا الرد والردود الجانبية لاحقا ليصبح الموضوع منظم بشكل جيد )

وبالتوفيق ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#14
DBMS كتب:
الله يجزاك خير يا ابو فارس

بالنسبة للـ(session) جربتها .. وأبشرك مضبوطة ولله الحمد ..

وأما مشكلتي مع الـ(DataSet) ..

فأنا أريد آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية

بحيث ما يتكرر الصف

بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..

طبعا الـ(20) صف راح أحطها بالداتا ست ..

فما الحل المناسب ؟؟

الله لا يهينك ..

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

حتى الأن عملت راندوم وتقدر تكتب عدد المرات اللي راح تنطبع بيانات رقم الصف العشوائي تبي 20 صف او 30 او ...

لكن فيه تكرار , لذالك انا اعمل عليها بحيث ما يكون فيه تكرار إن شاء الله

إنتضرني :)

HGB كتب:
موضوع جميل وشرح أجمل , وبارك الله فيك ,

لكن لي ملاحظة أخشى كما حدث مع العديد من المواضيع والصور التي كانت مربوطة لمواقع خارجية أن تختفي هذه المواقع ومعها الصور ويصبح الدرس عقيم (ربما بعد مدة طويلة سنة أو سنتين من الآن) لذلك إن قمت بتغيير الصور ووضعها ورفعها على سيرفر الفريق سنضمن بإذن الله وجودها مادام المنتدى موجودا بإذن الله ,,

ورفع الصور سريع ومباشر من الرابط في الأعلى من الصفحة الرئيسية ,,

(سيتم حذف هذا الرد والردود الجانبية لاحقا ليصبح الموضوع منظم بشكل جيد )

وبالتوفيق ,,

هلا فيك يالغالي HGB نورت الموضوع

بالنسبة لإقتراحك فأكيد في محله وممتاز , انا رحت وضغطت على مركز رفع الصور اللي مكتوب فوق المنتدى , حصلت مكتوب عن طريق لوحة التحكم تقدر ترفع صور

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

لأني انا استخدم الإف تي بي انقل ملفاتي مباشره

ولا تخاف من ناحيتي انا :) لأني رافعها على موقعي الشخصي وإن شاء الله ماراح اشيل اصور

شاكر لك مرورك الذي أسعدني وأطيب تحيه

...

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#15
DBMS كتب:
الله يجزاك خير يا ابو فارس

بالنسبة للـ(session) جربتها .. وأبشرك مضبوطة ولله الحمد ..

وأما مشكلتي مع الـ(DataSet) ..

فأنا أريد آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية

بحيث ما يتكرر الصف

بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..

طبعا الـ(20) صف راح أحطها بالداتا ست ..

فما الحل المناسب ؟؟

الله لا يهينك ..

حياك الله مره أخرى :) , أبشرك معي الحل لسؤالك

اقتباس
فأنا أريد آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية

بحيث ما يتكرر الصف

بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..

والحل

'هنا نقوم بتعريف نص يحتوي على معلومات  قاعدة البيانات التي كتبناها في صفحة web.config
		Dim connString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
		'نقوم بالإتصال بالداتا بيس
		Using myConnection As New SqlConnection(connString)

			'نقوم بإنشاء أمر الإستعلام في متغير نصي
			Const sql As String = "SELECT TOP 3 * FROM users ORDER BY NEWID()"

			'نقوم بتنفيذ أمر الإستعلام
			Dim myCommand As New SqlCommand(sql, myConnection)

			'هنا نقوم بإنشاء داتا ستDataSet
			Dim myDataSet As New DataSet

			'ثم نقوم بإنشاء داتا أدابتر لكي يتواصل بين الداتا ست  وقاعدة البيانات
			Dim myAdapter As New SqlDataAdapter(myCommand)
			myAdapter.Fill(myDataSet)

			Dim table As DataTable
			Dim row As DataRow

			'يتم عمل فور لوب بحيث يعمل لوب على أمر الإستعلام النصي اللذي تم تعريفه فوق
			For Each table In myDataSet.Tables
				For Each row In table.Rows

					'يتم عرض البيانات العشوائية
					Response.Write(row(1).ToString() + "<br />")

				Next row
			Next table

			'أغلق الإتصال
			myConnection.Close()

		End Using

النقطة المهمة في حل السؤال هو أمر الإستعلام النصي اللي هو الـ Query

لاحظ

SELECT TOP 3 * FROM users ORDER BY NEWID()

رقم 3 هو معناه راح يعمل SELECT لـ 3 سجلات

و ORDER BY NEWID()

هنا تم الإستناد على دالة

NEWID()

وهي بترتيب عشوائي

لإننا إحنا نعرف أن الأمر ORDER BY معناه عرض المعاملات بترتيب أفقي أو تنازلي

وبالدالة اللي قبل شوي معناه أيضاً يوجد ترتيب عشوائي :)

وإذا كنت تريد يعرض لك ترتيب عشوائي لكامل السجلات من دون ما تحدد عدد معين طبعاً بسهوله تكتب الأمر مثل كذا

SELECT * FROM users ORDER BY NEWID()

ونسيت أقولك بأن الدالة

NEWID()

تعرض لك بيانات عشوائية وأيضاً غير متكرره :)

وإن شاء الله أني أفدتك :)

تحيه طيبه

تم تعديل هذه المشاركة بواسطة أبـو فـارس في 13 ديسمبر 2006 في 06:33

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#16

اخي الكريم أبـو فـارس ابدعت بالشرح والله يوفقك ان شالله

#17
CoooL كتب:
اخي الكريم أبـو فـارس ابدعت بالشرح والله يوفقك ان شالله

شكراً لك أخي الكريم 'CoooL' مرورك أسعدني :huh:

<<< ما يعرف يعبر :lol:

تحيه طيبه :)

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#18

الله يجزاك خير يا ابو فارس ..>> فكيت أزمة :P

جربت الكوداللي سويته .. وما شاء الله مضبوط ..

وراح أضيف بعض الأفكار على الكود .. وأشوف هلى تضبط ولا لا >> خلك جاهز للأسئلة :blink:

الله لا يهينك .. يالغالي .. :D

#19
DBMS كتب:

الله يجزاك خير يا ابو فارس ..>> فكيت أزمة :P

جربت الكوداللي سويته .. وما شاء الله مضبوط ..

وراح أضيف بعض الأفكار على الكود .. وأشوف هلى تضبط ولا لا >> خلك جاهز للأسئلة :blink:

الله لا يهينك .. يالغالي .. :D

ممتاز

حياك الله حبيبي وإحنا في الخدمه دائماً , انا لسا مبتداء في الـ ASP :wacko: , ولا كان شفت الموقع مليان دروس :lol:

أحب لما تكون عندي أي معلومات أنشرها

إلى الأن أدرس هاللغة بشكل معمق وجالس أعمل توثيق لكل حاجه اتعلمها وبإذن الله بعد ما أكون جمعت دروس أبدا أشرحها هنا

لكن أصبروا علي :unsure: خخخخخخ

تحيه ,,

تم تعديل هذه المشاركة بواسطة أبـو فـارس في 16 ديسمبر 2006 في 14:24

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#20

بسم الله الرحمن الرحيم الاخ أبو فارس

شكرت جزيلا لمشاركاتك القيمة

ولكن عندي مشكلة واتمنى ان اجد الحل عندك

فمنذ فترة وانا أدور ع7لى الحل ولكن دون فائدة

انني اعمل صفحة على ASP.NET2 بلغة VB2005

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

الصفحة المشكلة هي :

test.mwcs.us

roro@mwcs.us

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

#21

أخي الكريم أبو فارس ، جزاك الله خيرا وأكثر من أمثالك

لكن سؤالي ليش نستخدم هذي الطريقة ، بينما في هناك كنتروك جاهز ل securtiy في Asp.net2005

بلاحظ ناس كثير بتستخدم الكود بدل الأشياء الجاهزة وحاب أعرف وجهة نظرهم ، خاصة في موضوع قواعد البيانات ، يعني بيكتبو كود connection و adapter وهكذا

على كل الله يعطيك العافية

إن لم يكن عون من الله للفتى فأول ما يقضي عليه اجتهاده

#22
chica كتب:
بسم الله الرحمن الرحيم الاخ أبو فارس

شكرت جزيلا لمشاركاتك القيمة

ولكن عندي مشكلة واتمنى ان اجد الحل عندك

فمنذ فترة وانا أدور ع7لى الحل ولكن دون فائدة

انني اعمل صفحة على ASP.NET2 بلغة VB2005

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

الصفحة المشكلة هي :

test.mwcs.us

roro@mwcs.us

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

حياك الله لكن مافهمت سؤالك والله ؟

newsawal كتب:
أخي الكريم أبو فارس ، جزاك الله خيرا وأكثر من أمثالك

لكن سؤالي ليش نستخدم هذي الطريقة ، بينما في هناك كنتروك جاهز ل securtiy في Asp.net2005

بلاحظ ناس كثير بتستخدم الكود بدل الأشياء الجاهزة وحاب أعرف وجهة نظرهم ، خاصة في موضوع قواعد البيانات ، يعني بيكتبو كود connection و adapter وهكذا

على كل الله يعطيك العافية

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

لكن اللي ودي أعرفه صراحةً ما هو الفرق في عملها بالكود أو الكنترولس من ناحية الـ securtiy أو أي شي آخر

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

لأن القريد فيو صحيح انها قويه وسريعه في تجهيزها لكن لا أرتاح لها لأنني لا يمكن أو لا أستطيع التحكم بها بشكل قوي ومرن , فقط يعمل ما يلزمني به البرنامج

شكراً لك مرورك أسعدني

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

#23

الأخ أبو فارس

مشكلتي هي

انه انا عملت صفحة asp.net على vb2005

واعملت قاعدة بيانات على sql2005

واشتغلت على ftp مباشرة

وانشأت قاعدة بيانات على الفيجوال وعلى الموقع

ولكن كل ماطلبت الصفحة تظهر لي المشكلة التالية أرجو منك ان تتطلع على الصفحة لترى مشكلتي test.mwcs.us

فما هو الخطا

اي ماذا يجب ان افعل

ارجو ان اكون اوضحت المشكلة وشكرا لك

#25
chica كتب:
الأخ أبو فارس

مشكلتي هي

انه انا عملت صفحة asp.net على vb2005

واعملت قاعدة بيانات على sql2005

واشتغلت على ftp مباشرة

وانشأت قاعدة بيانات على الفيجوال وعلى الموقع

ولكن كل ماطلبت الصفحة تظهر لي المشكلة التالية أرجو منك ان تتطلع على الصفحة لترى مشكلتي test.mwcs.us

فما هو الخطا

اي ماذا يجب ان افعل

ارجو ان اكون اوضحت المشكلة وشكرا لك

الخطأ اللي يطلع لما افتح الصفحه

An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

يقول بأنه فيه مشكله بالإتصال بقواعد البيانات

لابد أن تقوم بعمل إعدادات الإتصال بقاعدة البيانات بشكل سليم

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

تحيه عطره

اقتباس
جزاك الله خيرا اخي الكريم

وياك يارب شكراً لك

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

w w w . a l t h a r i . c o m

a b d u l m a l i k @ a l t h a r i . c o m

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

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