منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة عدم قبول النصوص الطويل في قاعدة البيانات على برنامج فيجوال بيسك 2010
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخواني الكرام 
تواجهني المشكلة : Sad
Huh  البرنامج لايسمح بكتابة وتخزين نص طويل في قاعدة البيانات , مع العلم أنني قمت بتحديد maxlength 125554456 واستخدم قاعدة بيانات من نوع أكسس وقد حددت في الاول short text لكن دون جدوى لايقبل النصوص الطويلة فجربت longtext وحتى هي لم تجدي اي نفع ودون جدوى , 
استخدمت دالة try فظهرت لي رسالة تفيد بان : DataGridView Column exceeds the MaxLength
 limit
السلام عليكم اخي الكريم
اختر نوع البيانات MEMO  والصورة توضح لك ذلك
(08-06-19, 04:44 AM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخي الكريم
اختر نوع البيانات MEMO  والصورة توضح لك ذلك

أخي الكريم لقد استخدمت نفس الطريقة , مع العمل أنني استخدم acces2016 
وهي خاصية MEMO تدعى  Long text ,
اقرأ سالؤال جيدا لقد استخدمت الطريقتين اي تحديد الطول الاقصى من خلال برنامج فيجوال بيسك 

وقمت بتحديد   Long text , من أجل نص كبير 
لكن دون جدوى ,
السلام عليكم اخي الكريم
يبدو ان مشكلتك هي في حقل من الداتا غرايد حيث يقبل عددا محدودا من الاحرف
 اختر الداتا غرايد فيو ثم ادحل على Edit Columns  واحتر العمود الذي تدخل فيه النص الطويل 
ثم ادهب الى MaxInputLength وتحرى القيمة الموجودة بجانبها
واكتب الحد الاقصى لقيول الاحرف وهو 4294967294 أو  2147483647 


دمت بخير
مرحباً اخى الرائد

بخصوص العمود لاحتواء نصوص كبيرة
فاختيارك لـ Long text هو الانسب لذلك

حيث انه يمكن تخزين نص حتى مساحة 1 جيجا
اى نصف مساحة تخزين قاعدة البيانات

طيب اين تقع المشكلة لديك هنا
قد يكون المشكلة احدها الاسباب التالية

1- فى الاداء المستخدمة فى المشروع
حيث انه لا يقبل مساحة كبيرة عند ادخال النص به وهو الحد الاقصي له

2- وهو كونك تحويل برنامج / ملف الى كود وقد يكون هذا الملف يتجاوز المساحة المطلوبة
وانك تقوم بتخزين كود المحول للملف بهذا العمود لذلك يحدث معك تلك المشكلة

اذا كان الخيار الثاني صحيح فتذكر ان قاعدة بيانات الاكسس لا تتجاوز الـ 2 جيجا
ثانياً راجع الرابط التالى بخصوص البند رقم 2
http://vb4arb.com/vb/showthread.php?tid=28905

بخصوص البند رقم 1 اذا كان بسبب الادوات المستخدمة فى المشروع
وهو المقصود بالخطاء الفعلى بسبب نص الرسالة 
DataGridView Column

فكل ما عليك تطبيق شرح الاخ ابراهيم ايبو برده السابق

تحياتى لك
وتمنياتى لك التوفيق
جربت الامر كذلك دون جدوى , وشكرا على التفاعل
(08-06-19, 05:06 PM)الرائد كتب : [ -> ]جربت الامر كذلك دون جدوى , وشكرا على التفاعل


ضع النص المراد حفظه بقاعدة البيانات

وكذلك صورة من الشاشة التى تقوم باستخدامها لوضع النص بها

واذا احببت رداً سريعاً بحل المشكلة
اتمنى ارفاق المشروع او مثال لما لديك
حتى يتم مراجعة المثال من الادوات والاكواد المستخدمة لديك

تحياتى لك
وتمنياتى لك التوفيق
(08-06-19, 03:42 PM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخي الكريم
يبدو ان مشكلتك هي في حقل من الداتا غرايد حيث يقبل عددا محدودا من الاحرف
 اختر الداتا غرايد فيو ثم ادحل على Edit Columns  واحتر العمود الذي تدخل فيه النص الطويل 
ثم ادهب الى MaxInputLength وتحرى القيمة الموجودة بجانبها
واكتب الحد الاقصى لقيول الاحرف وهو 4294967294 أو  2147483647 


دمت بخير



خلال بحثي عن الحل في هذه المشكلة وجدت نفس المشكللة مع أحد غيري 
فكان الحل بالنص التالي : 

It turns out that the culprit behind this error was a lack of communication between my program's dataset and the actual database. When I initially received the error, I left the text data I had entered in the database, changed the size allowance for the row in the DataGridView, and rebuilt my program. However, the dataset did not update to reflect the size change- communication had been shut down between the dataset and the database because the error had already happened. In other words, the dataset didn't update itself in order to 'protect' itself (even though that wasn't necessary).
I resolved the issue by rebinding my DGV in the designer. I set my DGV's data source property to none, deleted the three adapters that came with the connection, and deleted my old dataset. After everything was clear, I remade the data connection (using the same connection string) and the error had disappeared. I hope this helps anybody that runs into the same issue- those DGVs are sneaky.


لكنني لم أفهم ما القصود منه والا ما يشير بالتحديد
ومسار هذا الجواب من هنا howtogeek.com/howto/8711/stupid-geek-tricks-enable-the-secret-how-to-geek-mode-in-windows/
(اتضح أن السبب وراء هذا الخطأ هو عدم وجود اتصال بين مجموعة بيانات البرنامج وقاعدة البيانات الفعلية. عندما تلقيت الخطأ في البداية ، تركت البيانات النصية التي أدخلتها في قاعدة البيانات ، وقمت بتغيير بدل الحجم للصف في DataGridView ، وأعدت بناء البرنامج. ومع ذلك ، لم يتم تحديث مجموعة البيانات لتعكس تغيير الحجم - تم إيقاف الاتصال بين مجموعة البيانات وقاعدة البيانات لأن الخطأ قد حدث بالفعل. بمعنى آخر ، لم تقم مجموعة البيانات بتحديث نفسها من أجل "حماية" نفسها (رغم أن ذلك لم يكن ضروريًا).
لقد حللت المشكلة عن طريق إعادة ربط DGV في المصمم. و قمت بتعيين خاصية مصدر بيانات DGV الخاصة بي إلى لا شيء ، وحذفت المحولات الثلاثة المرفقة مع الاتصال ، وحذفت مجموعة البيانات القديمة. بعد أن كان كل شيء واضحًا ، أعيد تشكيل اتصال البيانات (باستخدام نفس سلسلة الاتصال) وكان الخطأ قد اختفى. آمل أن يساعد هذا أي شخص يواجه نفس المشكلة )
السطور السابقة هي الترجمة للنص الانكليزي
لي سؤال : ماهي طريقتك في الاتصال بقاعدة البيانات ؟ بالكود ام عن طريق معالج الاتصال؟
لم أفهم مايشير اليه النص 
أما طريقة الاتصال فهي عن طريق الفئة OleDbConnection
وشكراا لك على التفاعل
الصفحات : 1 2