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

كيف استطيع الحصول برمجيا على اسماء الجداول والحقول

بدأه shadi-ib في 2 نوفمبر 2009 · 6 رد · 1,368 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني اعتذر عن غيابي , وعودتي تكون بدايتها بسؤال ...

سؤالي هو كيف استطيع الحصول على اسم الجدول , والحصول على اسماء الحفول ونوع كل حقل .

لاوضح اكثر :

post-161245-1257184260_thumb.jpg

مثلا ان بعطيني ليست باسماء الجداول (التي باللون الاحمر) وان يعيد ليست باسماء الحقول و انواع المتغيرات ...

*/*/*/*/*

لاوضح اكثر واكثر لتفهموا منظومة العمل , انا زميل لي نبني برنامج يولد Classes و يكون فيها متغيرات و دوال SetGet .... والفئات classes هي تكون بمثابة الجداول يكون اسم كل جدول هو كلاس بحد ذاته واسماء المتغيرات تكون اسماء الحقول , وكل متغير في الفئة يكون ملائم لتوع الحقل الذي في قاعدة البيانات . هذا كله تقريبا جاهز ولكن فاضل الحصول على اسماء الجداول و اسماء الحقول ونوعها .

Chaos is rejecting all you have learned, chaos is being YOURSELF
 

#2

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

أولا, ابدأ أخي بزيادة مرجع للمكتبة Microsoft DAO 3.6 Object Library على مشروعك.

ثانيا, قم بتنقيح الكود التالي حسب حاجياتك :

			// فتح محرك قواعد بيانات أكسس 
			DAO.DBEngineClass dbe = new DAO.DBEngineClass();
			// فتح قاعدة البيانات
			DAO.Database db = dbe.OpenDatabase("testess.mdb", null, null, null);
			// استعراض الجداول الموجودة على القاعدة
			foreach (DAO.TableDef td in db.TableDefs) {
				// كتابة اسم الجدول
				System.Diagnostics.Debug.Print(td.Name);
				// استعراض حقول الجدول الحالي
				foreach (DAO.Field fld in td.Fields) {
					// كتابة اسم الحقل و نوعه
					System.Diagnostics.Debug.Print("\t" + fld.Name + " : " + ((DAO.DataTypeEnum)fld.Type).ToString());
				}
			}
			// غلق قاعدة البيانات
			db.Close();
			// تحرير الذاكرة
			db = null;
			dbe = null;

تحياتي...

تم تعديل هذه المشاركة بواسطة محمد رضى في 3 نوفمبر 2009 في 01:46

#3

بوركت اخي وشكرا لك الكود تمام وشغال ,

ولكن هناك مشكلة لا اعلم اذا كان هناك امكانية لحلها و هي المعلومات الزايدة اللي بتظهر من قاعدة البيانات :

مثل :

MSysAccessObjects

MSysAcessXML

MSysACEs

MSysObjects

MSysQueries

MSysRelationships

/

وفي غيرهم

و في سطرين :blush:

 System.Diagnostics.Debug.Print(td.Name);
System.Diagnostics.Debug.Print("\t" + fld.Name + " : " + ((DAO.DataTypeEnum)fld.Type).ToString());

فاستبدلت الـ System.Diagnostics.Debug.Print بـ Console.WriteLine

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

والنتائج كانت مرضية

صورة للحبايب :wub:

post-161245-1257219136_thumb.jpg

شكرا مرة اخرى

تم تعديل هذه المشاركة بواسطة shadi-ib في 3 نوفمبر 2009 في 06:59

Chaos is rejecting all you have learned, chaos is being YOURSELF
 

#4

ألف شكر أخي محمد رضى على ردك والله الفكرة كتير حلوة

--==iceDragon==--
ماجستير نظم دعم القرار الذكية IDSS

#5

بارك الله فيكم جميعا وسيتم طرح المشروع الصغير (المصدر) قريبا جدا ,

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

Chaos is rejecting all you have learned, chaos is being YOURSELF
 

#6

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

منذ فترة احتجت لكود مشابه لما تطلبه وكتبته سريعا وبعد انتهاء الغرض حذفته

وعندما رأيت موضوعك حفزني على كتابة الكود بشكل أوسع (ولكنه مازال محدوداً)

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

جربه وأخبرني بالنتيجة

الكود في المرفقات

DataBase.rar

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#7
Mr.Mando كتب:
السلام عليكــم ورحمـة الله وبركاتــه

منذ فترة احتجت لكود مشابه لما تطلبه وكتبته سريعا وبعد انتهاء الغرض حذفته

وعندما رأيت موضوعك حفزني على كتابة الكود بشكل أوسع (ولكنه مازال محدوداً)

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

جربه وأخبرني بالنتيجة

الكود في المرفقات

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

Chaos is rejecting all you have learned, chaos is being YOURSELF
 

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

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

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

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

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