• 0
shadi-ib

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

سؤال

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

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

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

لاوضح اكثر :

post-161245-1257184260_thumb.jpg

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

*/*/*/*/*

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

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

أولا, ابدأ أخي بزيادة مرجع للمكتبة 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;

تحياتي...

تم تعديل بواسطه محمد رضى
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

مثل :

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

DataBase.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
السلام عليكــم ورحمـة الله وبركاتــه

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .