منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
جلب أسماء الجداول- البرنامج يتوقف عن العمل - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : جلب أسماء الجداول- البرنامج يتوقف عن العمل (/showthread.php?tid=41633)



جلب أسماء الجداول- البرنامج يتوقف عن العمل - mmaalmesry - 05-06-22

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

اخوتى الكرام:

عندى مشكلة غريبة لا أعرف إن كانت مرت على أحد منكم أم لا وهى كالتالى :
كود :
   Public Function getTablesnames_Access() As DataTable
       Try
           Dim Conn10 As New OleDbConnection(connection_Access)
           If Conn10.State = ConnectionState.Closed Then Conn10.Open()
           Dim dt_Access As DataTable

           dt_Access = Conn10.GetSuchema("tables", {Nothing, Nothing, Nothing})

           Return dt_Access
       Catch
           MsgBox(Err.Description)
           Return Nothing
       End Try
   End Function

'=============================
   Public Function getTablesnames_SQL() As DataTable
       Try
           Dim Conn3 As New SqlConnection(connection_SQL)
           If Conn3.State = ConnectionState.Closed Then Conn3.Open()

           Dim dt_SQL As DataTable
:100
           dt_SQL = Conn3.GetSchema("tables", {Nothing, Nothing, Nothing})

           Return dt_SQL
       Catch
           MsgBox(Err.Description)
           Return Nothing
       End Try
   End Function
الوظيفتان تعملان على جلب أسماء الجداول فى قاعدتى بيانات اثنين إحدهما أكسس و الأخرى إس كيو إل
و الوظيفتان تعملان بنجاح بشكل منفصل

ولكن إذا استدعيت الوظيفة الأولى ثم استدعت الثانية يتوقف البرنامج ولا يعطى رسالة خطأ و ذلك عند السطر 100

أرجو الإفادة و شكرا


RE: جلب أسماء الجداول- البرنامج يتوقف عن العمل - نيمو - 05-06-22

رقم 100 زائدة في الكود هو سبب المشكلة
اعتقد ما منتبه اله


كود :
          Dim dt_SQL As DataTable
:100
          dt_SQL = Conn3.GetSchema("tables", {Nothing, Nothing, Nothing})



RE: جلب أسماء الجداول- البرنامج يتوقف عن العمل - أبو خالد الشكري - 05-06-22

مرحبا بالجميع ...

أعتقد رقم 100:  لا تؤثر في العمل أبدّا  !

وهذه الطريقة (100:) أو أي رقم ، أو أي كلمة ، يشترط بعدها نقطتان فوق بعضهما هكذا : 
تستخدم هذه الطريقة لإجبار البرنامج للانتقال فورا إلى ذلك السطر وما بعده من أوامر أو msgbox

وأكثر شيء تستخدم هذه الطريقة عندما نكتب مصيدة الأخطاء التالية
On error go to 100
في هذا السطر لا نكتب النقطتين :

حتى إذا كنا كتبنا كلمة معينة ، مثلا كلمة :Careful
فنكتب عندئذ السطر التالي في مصيدة الأخطاء
On error go to Careful
ونفس الشيء بدون النقطتين :

ولكن في مصيدة الأخطاء قبل أن نكتب (أي رقم أو أي كلمة) يجب أن نكتب الأمر التالي
Exit Sub
أما بعد الرقم أو الكلمة ، يمكننا أن نكتب للمستخدم أي شيء نريده
مثلا نكتب له msgBox


ملاحظة : عندما نكتبها هكذا بدون مصيدة  أخطاء ، أو بدون أن نأمر البرنامج للتوجه إلى ذلك السطر ، فإن ذلك لا يؤثر في البرنامج شيئا 
وسيشتغل البرنامج عادي جدا ، وكأنها غير موجودة Smile


أما الأخ mmaalmesry فإنه قد استخدم مصيدة الأخطاء التي تبدأ بكلمة Try وتنتهي بكلمة Catch
ولذلك لا داعي لاستخدام الرقم 100:
ولهذا السبب الأخ العزيز نيمو اعتبرها زائدة !




هذا والله أعلم .


RE: جلب أسماء الجداول- البرنامج يتوقف عن العمل - نيمو - 05-06-22

(05-06-22, 02:10 PM)أبو خالد الشكري كتب : مرحبا بالجميع ...

أعتقد رقم 100:  لا تؤثر في العمل أبدّا  !

وهذه الطريقة (100:) أو أي رقم ، أو أي كلمة ، يشترط بعدها نقطتان فوق بعضهما هكذا : 
تستخدم هذه الطريقة لإجبار البرنامج للانتقال فورا إلى ذلك السطر وما بعده من أوامر أو msgbox

وأكثر شيء تستخدم هذه الطريقة عندما نكتب مصيدة الأخطاء التالية
On error go to 100
في هذا السطر لا نكتب النقطتين :

حتى إذا كنا كتبنا كلمة معينة ، مثلا كلمة :Careful
فنكتب عندئذ السطر التالي في مصيدة الأخطاء
On error go to Careful
ونفس الشيء بدون النقطتين :

ولكن في مصيدة الأخطاء قبل أن نكتب (أي رقم أو أي كلمة) يجب أن نكتب الأمر التالي
Exit Sub
أما بعد الرقم أو الكلمة ، يمكننا أن نكتب للمستخدم أي شيء نريده
مثلا نكتب له msgBox


ملاحظة : عندما نكتبها هكذا بدون مصيدة  أخطاء ، أو بدون أن نأمر البرنامج للتوجه إلى ذلك السطر ، فإن ذلك لا يؤثر في البرنامج شيئا 
وسيشتغل البرنامج عادي جدا ، وكأنها غير موجودة Smile


أما الأخ mmaalmesry فإنه قد استخدم مصيدة الأخطاء التي تبدأ بكلمة Try وتنتهي بكلمة Catch
ولذلك لا داعي لاستخدام الرقم 100:
ولهذا السبب الأخ العزيز نيمو اعتبرها زائدة !




هذا والله أعلم .


شكرا للتوضيح اعتقدها زائدة Big Grin  ماجربت الكود اللي فيه المشكلة 
لان اصلا مافهمت شو يقصد قاعدة بيانات اس كيو ال

المهم اذن On error go to

نفس عمل try


RE: جلب أسماء الجداول- البرنامج يتوقف عن العمل - أبو خالد الشكري - 05-06-22

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


RE: جلب أسماء الجداول- البرنامج يتوقف عن العمل - asemshahen5 - 05-06-22

استخدم هذا الاستعلام لجلب أسماء جداول قاعدة بيانات SQL Server :

PHP كود :
Select Name AS 'Table_Name' From dbo.sysObjects Where xtype='u' order by Name