تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة عندالتعامل مع (My.Application.CommandLineArgs)
#1
السلام عليكم ورحمة الله وبركاته

عملت برنامج صغير لعرض الصور
وعملت به ميزة فتح البرنامج من خلال عمل دبل كليك على الصورة
واستخدمت ذلك الكود وهو يعمل تمام 
كود :
Private Sub Frm_Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       If My.Application.CommandLineArgs.Count > 0 Then Pc_Img.ImageLocation = My.Application.CommandLineArgs(0)  
   End Sub


ولكن المشكلة في جملة الأتصال هذه
كود :
   Private xCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Files\Db\PicturesStore.mdb;jet oledb:database password=123456789")

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

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

فقمت بعمل متغير يجلب لي مسار البرنامج ووضعته داخل جملة الأتصال فظهرت المشكلة

أتمنى ان يكون كلامي واضح للجميع


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#2
السلام عليكم
أخي الكريم اعتقد المشكلة عندك في الاتصال بتوضيح مكان القاعدة PicturesStore.mdb المكان غير واضح
حدد مكان القاعدة بالتحديد والله الموفق......

الدرايف
الفولدر
اسم القاعدة
على سبيل المثال.............. c:\test\PicturesStore.mdb
Private xCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Files\Db\PicturesStore.mdb;jet oledb:database password=123456789")
الرد
تم الشكر بواسطة: Ronald
#3
اخي المسار شغااال تمام
ولكن المشكلة فقط عند فتح البرنامج عن طريق الدبل كليك لملف الصورة

فطالما لم تكتب المسار كامل فالأفتراضي ان القاعدة بجانب البرنامج
الرد
تم الشكر بواسطة:
#4
استاذ عبدالله

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

تقبل مروري
الرد
تم الشكر بواسطة: Ronald
#5
اخي البرنامج يعمل بطريقتين
الطريقة الأولى وهي فتح البرنامج من الملف التنفيذي وهذه الطريقة شااالة تمام ولا اية مشكلة
الطريقة الثانية يتم فتح البرنامج من خلال ملف صورة بعمل دبل كليك للصورة وهنا تظهر مشكلة مسار قاعدة البيانات
الرد
تم الشكر بواسطة:
#6
اضف موديول وضع به متغير عمومي  واسند له مسار مجلد الملف التنفيذي
PHP كود :
   Public pa As String IO.Path.GetDirectoryName(Application.ExecutablePath
واستخدم المتغير اذا اردت مسار اي مجلد مجاور للملف التنفيذي اللذي يتم تشغيله.
الرد
#7
(31-03-21, 09:15 PM)عبدالله الصافي كتب : السلام عليكم ورحمة الله وبركاته

عملت برنامج صغير لعرض الصور
وعملت به ميزة فتح البرنامج من خلال عمل دبل كليك على الصورة
واستخدمت ذلك الكود وهو يعمل تمام 
كود :
Private Sub Frm_Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       If My.Application.CommandLineArgs.Count > 0 Then Pc_Img.ImageLocation = My.Application.CommandLineArgs(0)  
   End Sub


ولكن المشكلة في جملة الأتصال هذه
كود :
   Private xCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Files\Db\PicturesStore.mdb;jet oledb:database password=123456789")

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

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

فقمت بعمل متغير يجلب لي مسار البرنامج ووضعته داخل جملة الأتصال فظهرت المشكلة

أتمنى ان يكون كلامي واضح للجميع

PHP كود :
Private xCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Files\Db\PicturesStore.mdb;jet oledb:database password=123456789"
الرد
#8
تبارك الله
بارك الله في حضراتكم اخواني الكرام
اشتغل الكود ةالحمدلله بما تفضلتم به
--------------------------------------------
ولكني ادركت الخطأ الأن كيف كان واتمنى منكم ان توضحوه لي
لقد فعلا عملت متغير عام على المشروع لمسار البرنامج ووضعته داخل جملة الأتصال
ولكني اعلنت عنه داخل موديول جملة الأتصال وأعطيته القيمة داخل الحدث تحميل الفورم الرئيسي
وكنت اتأكد انه محتفظ بقيمته قبل استخدام جملة الأتصال ومع ذلك كانت تحدث المشكلة

اما عندما اعطيته القيمة عند الأعلان عنه كما تفضل الأخ سعود فلا تحدث المشكلة

فأتمنى توضيح السبب
ولكم جزيل الشكر
الرد
تم الشكر بواسطة: Ronald , سعود
#9
(01-04-21, 06:05 AM)عبدالله الصافي كتب : تبارك الله
بارك الله في حضراتكم اخواني الكرام
اشتغل الكود ةالحمدلله بما تفضلتم به
--------------------------------------------
ولكني ادركت الخطأ الأن كيف كان واتمنى منكم ان توضحوه لي
لقد فعلا عملت متغير عام على المشروع لمسار البرنامج ووضعته داخل جملة الأتصال
ولكني اعلنت عنه داخل موديول جملة الأتصال وأعطيته القيمة داخل الحدث تحميل الفورم الرئيسي
وكنت اتأكد انه محتفظ بقيمته قبل استخدام جملة الأتصال ومع ذلك كانت تحدث المشكلة

اما عندما اعطيته القيمة عند الأعلان عنه كما تفضل الأخ سعود فلا تحدث المشكلة

فأتمنى توضيح السبب
ولكم جزيل الشكر

السبب في اللي انت كتبه Data Source=Files\Db\PicturesStore.mdb
لاححظ انك كتبت المجلد Files مباشره بدون ما تحدد مساره
عشان كده انت عملت دبل كليك علصوره النظام اعطاه مسار c:\windows\system32 واكيد قاعدة البيانات مش في المكان ده

المشكله اتحلت لما اشار ليك الاخ سعود بتحديد المسار عن طريق Application.ExecutablePath
وممكن زي ما اشرت ليك |DataDirectory| كلها بتعطيك مسار ملف تشغيل البرنامج
فعندها البرنامج عندو المسار الصحيح ووجد المجلد ومشي الحال
الرد
تم الشكر بواسطة: عبدالله الصافي , سعود
#10
اخي Ronald
من قبل جربت عمل متغير ووضع فيه مسار البرنامج كما فعل اخي سعود بالضبط
الفرق اني اعطيته القيمة في حدث تحميل الفورم وليس وقت الأعلان عنه ووضعته داخل جملة الأتصال
ولكن كان يحدث خطأ بالرغم أني كنت أتأكد أن المتغير مازال يحمل المسار قبل استخدام جملة الأتصال مباشرة
-----------------------------------------
فما اريده هو معرفة الفرق بين اعطائه المسار مباشرة كما فعل أخي سعود
وإعطائه القيمة في حدث تحميل النافذة
لأني حتى الأن لم استوعب ما هو السبب الرئيسي في ذلك
ولكم جزيل الشكر
الرد
تم الشكر بواسطة: Ronald , سعود



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم