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

ارسال رسائل

بدأه paltech في 12 مارس 2016 · 0 رد · 475 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

انا موظف بمديرية تربية

أقوم بعمل برنامج لارسال قسائم رواتب الموظفين لمدارسهم حيث ان وزارة التربية تبعث لنا قسائم المديرية على شكل ملف pdf

فاقوم بتقسيم هذا الملف الى ملفات pdf حسب المدرسة بحيث ان ملف كل مدرسة يسمى باشارة الوحدة لهذه المدرسة مكون من 5 ارقام

مثلا إشارة الوحدة لمدرسة س هو 23100 يكون ملف قسائمها هو 23100.pdf

و هكذا طبعا و تكون ملفات pdf داخل مجلد في جهاز الكمبيوتر

فقمت بعمل قاعدة بيانات للمدارس تحوي على 3 حقول

SchoolUnit إشارة الوحدة للمدرسة مكون من 5  ارقام و هو مفتاح اساسي

SchoolName اسم المدرسه

SchoolEmail البريد الالكتروني للمدرسة على gmail

و جدول المدرسة يكون فيه بيانات عن المدرسة حسب الحقول الثلاث مثلا

SchoolEmail    SchoolName    SchoolUnit

23100   مدرسة الرحمة  rahma@gmail.com

23200  مدرسة الفرقان  furgan@gmail.com

وهكذا

و مجلد مخزن على القرص الصلب يحوي على ملفات pdf و هي

23100.pdf

23200.pdf

على المسار d:\pdfs

و الذي اريده أي يقوم بارسال قسيمة كل مدرسة لبريدها عند مقارة اسم ملف pdf مع حقل SchoolUnit في جدول المدارس

فقمت باستخدام تقنية linq كما يلي

DirectoryInfo di = new DirectoryInfo(@"e:\pdfs\");

var c = (from i in di.GetFiles("*.pdf", SearchOption.AllDirectories)

let gg = Int32.Parse(System.IO.Path.GetFileNameWithoutExtension(i.Name))

join s in dbo.Schools on Int32.Parse(System.IO.Path.GetFileNameWithoutExtension(i.Name))

equals s.SchoolUnit

select new { i, s, gg });

بحيث يقوم بجلب بيانات أسماء الملفات بدون امتداد وجلب بيانات المدرسة من قاعدة البيانات و مقارنة اسم الملف في المجلد مع حقل SchoolUnit في قاعدة البيانات

و قد استخدمت foreach

و لكن يقوم بارسال كل قسائم المدارس لكل مدرسة

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