01-03-19, 03:53 PM
الشكر لله والحمد لله
والحمد لله على كل حال
فى البداية السورس يبدو انك حاولت ان تقوم بحذف كل من الشاشات بالمشروع
ولكن لم يتم حذفها بشكل صحيح وكذلك انت قمت بارفاق نسخة احتياطية من قاعدة البيانات
وليست قاعدة البيانات نفسها على اى حال بعد رؤية الصور مع الاكواد المستخدمة فى الشاشة بالمشروع
فكل ما اتمكن من افادتك به لتنفيذ الامر هو التالى
تعال فى حدث : but_add_Click واجعل الكود به بهذا الشكل
كود :
// جلب بيانات المرفق
var IDNum = dataGridView1.Rows[DgId].Cells[0].Value;
cmd = new SqlCommand("SELECT FileName, FileData FROM TB_In WHERE Id = " + IDNum, con);
Da = new SqlDataAdapter(cmd);
Da.Fill(dt1);
string[] fi = dt1.Rows[0]["FileName"].ToString().Split('.');
byte[] runFile = (byte[])dt1.Rows[0]["FileData"];
string Patch = System.IO.Path.GetTempPath() + dt1.Rows[0]["FileName"];
System.IO.File.WriteAllBytes(Patch, runFile);
System.Diagnostics.Process.Start(Patch);
MessageBox.Show("تم فتح الملف");الان ناتى فى خطوة مهمة لمعالجة الخطاء بالكود فى السطر الاول وهو خاصة DgId
ولحل هذا كل ما عليك اضافة هذا السطر
كود :
public int DgId { get; set; }فى اى مكان تريد اضافته فكما تشاء
وبالنهاية ناتى للنقطة الاخير وقبل الحفظ واختبار الامر
وهو اضافة الكود التالى فى هذا الحدث : dataGridView1_CellClick
كود :
DgId = e.RowIndex;شرح كل جزء ...
بخصوص DgId تم تعريفه انه من نوع رقم
من ثم فى حدث dataGridView1_CellClick تم تعريف قيمة DgId بقيمة رقم الصف من الداتا جريد
بحيث كلما تم الضغط على اى مكان فى الصف او تم تحديد الصف يتم جلب هذه القيمة لـ DgId
وبالنهاية فى حدث الزر وهو but_add_Click تم عمل استعلام لجلب ملف المرفق ومن ثم تكوين الملف بالجهاز ومن ثم فتحه
طبعاً كان بامكان استغناء من كود الاستعلام وبما انك بالفعل قمت بعمل جلب جميع محتوى الملف
وقمت بتعبئته بالداتا جريد مع اخفاء عمود المرفقات كما فى كود السورس فبامكانك ان تستفاد بان يكون كود الزر
وهو خاص بحدث : but_add_Click على هذا الشكل
كود :
byte[] runFile = (byte[])dataGridView1.Rows[DgId].Cells[8].Value;
string Patch = System.IO.Path.GetTempPath() + dataGridView1.Rows[DgId].Cells[7].Value;
System.IO.File.WriteAllBytes(Patch, runFile);
System.Diagnostics.Process.Start(Patch);
MessageBox.Show("تم فتح الملف");حيث ان رقم 7 يشير الى اسم الملف مع الامتداد الخاص به
وكذلك رقم 8 يشير الى الملف المرفق بقاعدة البيانات
يمكنك اختبار كلا من الكود الحدث بعد اضافة الباقي كما مشار له بالشرح
تذكر ان الاكواد والشرح مبني على كتابة منى وبدون اختبار لعدم عمل السورس جيداً
وايضاً لعدم وجود قاعدة البيانات نفسها مع السورس وبامر الله الكود سيعمل معك مباشر بدون التعديل
تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى
لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى
لكل من يقوم بالمساهمةفى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية

