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

[ تنبيه ] مشكلة حذف ملف مرافق لمسار بقاعدة البيانات

بدأه شوووري2011 في 18 أكتوبر 2011 · 18 رد · 1,714 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال بخصوص حذف الملفات:

انا انشأت gridview لمجموعة ملفات مخزنة في مجلد في المشروع ، انشأت جدول في الداتا بيس بأسماء الملفات ،واضفت كود الاضافة والحذف

لكن المشكلة انه لمن اضغط على حذف ، يحذف اسم الملف فقط من الداتا بيس وما يحذف الملف نفسه من المجلد :(

سؤالي : هل يوجد كود لحذف ملف من المجلد ؟؟

علما بأنه مشروعي موقع ويب #c

وشكرآآآآ مقدما..

#2

تابع هذا السؤال هنا

إستخدم البحث في المرة المقبلة

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#3

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

ان شاء الله :)

#4

انا حملت المثال اللي انت منزله في رابط الموضوع ،اول شيء الداتابيس ما فتح معايا،

ثاني شيء: شفت الكود بيهايند ، حدث GridView1_RowDeleting

كيف اوصل لهذا الحدث من الصفحة نفسها؟؟

لأنه لمن اعمل دبل كليك للجدول ما يطلعلي الحدث اللي في الكود بيهايند..

معليش تعبتك معايا ،،

وشكرآآ....

#5
اقتباس
اول شيء الداتابيس ما فتح معايا

لأن إصدار sql server يلي عندك أقدم من يلي عندي ( إنت تستخدم 2005 )

لذلك قم بإنشاء مشروع جديد عندك ثم إذهب إلى التبويب الذي على يمين الشاشة solution explorer وإضغط على مسار مجلد المشروع وإختر Add Exiting Item ثم أضف الصفحات التي في المرفقات Default.aspx و Default.aspx.cs من المثال الذي حملته ووافق على الإستبدال ..... ثم أنشأ مجلد في مجلد المشروع بإسم images

أو

أنشئ مشروع جديد

ثم قم بفك الضغط عن الملف الذي في المرفقات ثم إنسخ هذين الملفين وضعها في مجلد المشروع الذي أنشأته ووافق على الإستبدال ثم أنشأ مجلد في مجلد المشروع بإسم images

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

id وإجعله مفتاح رئيسي

imageName وإجعل نوعه مثلاً varchar(MAX)

اقتباس
كيف اوصل لهذا الحدث من الصفحة نفسها؟؟

إضغط على Grid View ثم إتبع الصورة

post-230800-079955900 1318984872_thumb.j

image.zip

المرفقات
handle.jpg

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#6

الاصدار اللي عندي 2005..

عملت كل اللي قلتلي عليه بس يطلعلي ايرور:

((سلسلة الاتصال فارغة أو لم يتم العثور على اسم الاتصال 'ConnectionString' في تكوين التطبيقات.))

ايش اسوي؟؟؟؟

متأسفة على التعب لأن هذي المشكلة صادفت اغلب الطلبة..

وشكرآآآآ.....

#7

عادي أخي مشكلة بسيطة

عليك إنشاء سلسلة الإتصال بالقاعدة في ملف web.config

قم بفتح الملف web.config الموجود مع ملفات الموقع ثم أضف فيه هذا السطر عند <connectionStrings> :

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

مثل الصورة يعني :

post-230800-084813500 1319052488_thumb.j

المرفقات
web.jpg

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#8

دورت في الصفحة عن <connectionString> مالقيته!!!

بس لقيت القفلة تبعها.. قمت كتبت البداية وادرجت جملة الاتصال ، يقولي انه ايرور في جملة الاتصال!!

#9

اسفة يا استاذ .. المشكلة انحلت .. وفتحت الصفحة ..

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

تم تعديل هذه المشاركة بواسطة شوووري2011 في 19 أكتوبر 2011 في 23:24

#10

أكيد عندك خطأ

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

هنا

آسف على بطئ التسجيل ...

بالتوفيق

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#11

*- يحظر استخدام اللهجة العامية

*- أو كتابة الأسئلة باللغة الإنجليزية

*- أو كتابة الكلمات الإنجليزية بالعربية

====

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12

شكرآآ على الشرح الوافي.. الله يوفقك ان شاء الله..

انا جربت اعمل نفس الخطوات على مشروعي.. لكن صادفتني نقطة:

انت لمن ذهبت لل Edit Coloumns الموجود في ال Gridview :

اخترت ImageField لأنك انت تريد حذف صور، وكتبت المسار واسم الحقل ، لكن انا مجلدي يحتوي على ملفات pdf و doc ،

ولا يمكنني اختيار ImageField ، لأنه لمن اخترته ظهر error ، فماذا اختار؟؟

وشكرآآآ....

تم تعديل هذه المشاركة بواسطة شوووري2011 في 21 أكتوبر 2011 في 20:11

#13

استخدم pdffield and docfield

:) لا تصدق امزح معك

استخدم hyperlink

#14

أختي العزيزة شوري

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

في الـ Code الذي يقوم بعملية الحذف من قاعدة البيانات، هل من الممكن أخذ قيمة الحقل الذي يحوي مسار الملف المراد حذفه ؟ إذا نعم فأنا أعتقد أن المشكلة التي تواجهك هي عبارة عن تحويل مسار الملف من الـ Virtual Path إلى الـ Physical Path. الذي أعرفه هو أنه عندما تريدين حذف أي ملف في الجهاز الخادم الـ Server فأنت في هذه اللحظة خرجتي من عالم الويب إلى عالم الـ I/O Stream. فمثلا لو كانت الملفات موجودة في مشورعك في مجلد تحت اسم files، ولنفرض أن هذا المجلد في مستوى الـ Root كما هو الحال في المثال التالي

- <images_folde>
- <files_folder>
- <css_folder>
- aspx file 1
- aspx file 2
- aspx file 3
.
.
.
.
.

فلكي تعرضي الملف تقومي بوضع رابط إكالتالي

<a href="files/your_file_to_be_viewed">file name from database</a>

ولكن لحذف الملف فعليا Physically من القرص الصلب لا ينفع أن تقومي بإعطاء Virtual Path كما في المثال التالي

File.Delete("files/your_file_name");

كل ما عليكي فعله هو إستخدام الدالة Server.MaptPath كما في المثال التالي

Server.MapPath("~/files/your_file_name"); // or Server.MaptPath("~" + file_path_from_database);

في حالة أن هذه المعلومات كانت لا توصلك إلى ما تريدين إنجازة أرجو منكي وضع الـ Code الخاص بعملية الحذف لديكي وتركيب الجدول الذي تقومين بتخزين الملفات فيه.

أتمنى لكي التوفيق

تم تعديل هذه المشاركة بواسطة Robatic في 21 أكتوبر 2011 في 22:43

#15

شكرآآ للي ردوا علي..

لكن ما نفعت الطرق اللي قدمتوها لي :(

انا ارفقت المجلد .. بالرغم من اني تتبعت الفيديو إلا انه فيه خطأ..

وشكرآآآ مرة اخرى..

delbooks.rar

#16

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

آسف أخي على التأخر بسبب الظروف

المهم

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

أنت تريد عرض إسم الكتاب أو الملف "مهما كان نوعه" لذلك لا يتوجب عليك وضع أي حقل إضافي لأنك تريد عرض الإسم فقط والإسم كنص يكون معروض إفتراضياً ضمن الحقل name_book

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

لذلك نقوم بوضع المسار ضمن كود C#

فيصبح الكود هكذا

string fileName;
    	fileName = e.Values["name_book"].ToString();
    	if (File.Exists(Server.MapPath("~/books/" + fileName)))
    	{
        	File.Delete(Server.MapPath("~/books/" + fileName));
    	}

بخصوص HyperLinkField الذي وضعته أنت في GridView فهو تستخدمه إن كنت تريد أن يكون إسم الكتاب كرابط حتى تستطيع تحميله أو عرضه ضمن المستعرض مثلاً "تستطيع حذفه الآن لأنه لا يؤثر"

بالتوفيق

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#17

الحمد لله ضبط الحذف .. الله يجزاك كل خير..

عندي كمان استفسار آخر، اسفة ثقلت عليك :blush: :

لدي Gridview مخزنة فيه اسماء لمقاطع صوتية، وعندي حقل " استماع "

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

قمت بطرح هذا السؤال في المنتدى :

/index.php?showtopic=250045&st=0&p=1236627&fromsearch=1entry1236627

وشكرآآآآ...

#18
اقتباس
الحمد لله ضبط الحذف .. الله يجزاك كل خير..

مبروك .. وجزاك بالمثل ... ولا تنسي دائماً الدعاء لنا

بخصوص سؤالكِ ..بما أنك قمت بوضعه في منتدى C# فأعتقد أنك تريدنه Windows Application وليس Web Application

آسف فليس عندي أي علم بتطبيقات سطح المكتب sad.gif

بتوفيق الله .

تم تعديل هذه المشاركة بواسطة KV2010 في 24 أكتوبر 2011 في 09:59

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#19

الله يعطيكم العافية .. ما تقصروا ..

انا كنت ابحث عن سؤال مماثل لسؤالي فوجدت اسئلة مشابهة لسؤالي في منتدى #C لكن ليست ل Gridview فادرجت السؤال هناك :lol:

لا ادري انه لل Windows Application

وانا ابحث عن كود لل Web Application ..

وشكرآآآ....

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

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

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

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

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