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

ظهور خطاً عند تنفيز جملة select

بدأه كارم سامي في 27 يوليو 2011 · 8 رد · 522 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ظهور خطأ Index was outside the bounds of the array. عند تنفيز هذه الجملة

          label17.Text = Publics.CurrentBookAutonumber;

            string S_connetionString2 = null;
            OleDbConnection S_cnn2;
            OleDbCommand S_cmd2;
            string S_sql2 = null;
            OleDbDataReader S_reader2;

            S_connetionString2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..//..//S_libdata.mdb;";
            S_sql2 = "SELECT COUNT(*)FROM bookd WHERE (bookdautonumber = (" + label17.Text + "))";

            S_cnn2 = new OleDbConnection(S_connetionString2);
            try
            {
                S_cnn2.Open();
                S_cmd2 = new OleDbCommand(S_sql2, S_cnn2);
                S_reader2 = S_cmd2.ExecuteReader();
                while (S_reader2.Read())
                {
                    bookdnameTextBox.Text            = ("" + S_reader2.GetValue(1));
                    bookdbarcodeTextBox.Text         = ("" + S_reader2.GetValue(2));
                    bookdsectionComboBox.Text        = ("" + S_reader2.GetValue(3));
                    bookdauthorTextBox.Text          = ("" + S_reader2.GetValue(4));
                    bookdeditionnoTextBox.Text       = ("" + S_reader2.GetValue(5));
                    bookddepositnoTextBox.Text       = ("" + S_reader2.GetValue(6));
                    bookdinternationalnoTextBox.Text = ("" + S_reader2.GetValue(7));
                    bookdjoindateTextBox.Text        = ("" + S_reader2.GetValue(8));
                    bookdlocationaComboBox.Text      = ("" + S_reader2.GetValue(9));
                    bookdlocationbComboBox.Text      = ("" + S_reader2.GetValue(10));
                    bookdlocationcComboBox.Text      = ("" + S_reader2.GetValue(11));
                    bookdstateTextBox.Text           = ("" + S_reader2.GetValue(12));
                    bookdcontentTextBox.Text         = ("" + S_reader2.GetValue(13));
                    bookdrecordernameTextBox.Text    = ("" + S_reader2.GetValue(14));
                }
                S_reader2.Close();
                S_cmd2.Dispose();
                S_cnn2.Close();
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show("غير قادر علي فتح الأتصال ! ");

            }
#2

السلام عليكم.

تعليمة السيكوال سترجع عمود واحد و هو عدد أسطر الجدول التي تحقق الشرط الذي كتبته, بينما في حلقة while أنت تحاول جلب قيمة أكثر من عمود و هذا يعطي رسالة الخطأ.

يفضل مراجعة تعليمة السيكوال و التأكد من الأعمدة التي يجب اختيارها.

#3

السلام عليكم

لابد أن تضع أسم أي حقل موجود في الجدول بدلا من علامة *

S_sql2 = "SELECT COUNT(fieldname)FROM bookd WHERE (bookdautonumber = (" + label17.Text + "))";

تم تعديل هذه المشاركة بواسطة Mady-AGC في 27 يوليو 2011 في 16:41

منحة للخريجين وطلاب الجامعات و المعاهد

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

سبحان الله وبحمده سبحان الله العظيم

#4

شكراً لكم احبائي ... لقد وجدت الحل

اقتباس

السلام عليكم.

تعليمة السيكوال سترجع عمود واحد و هو عدد أسطر الجدول التي تحقق الشرط الذي كتبته, بينما في حلقة while أنت تحاول جلب قيمة أكثر من عمود و هذا يعطي رسالة الخطأ.

يفضل مراجعة تعليمة السيكوال و التأكد من الأعمدة التي يجب اختيارها.

شكراً لك اخي Adel Khayata الخطاً فعلاً في جملة السكول ولكن ليس هكذا ..

اقتباس

السلام عليكم

لابد أن تضع أسم أي حقل موجود في الجدول بدلا من علامة (" + label17.Text + ")

شكراً لك اخ Mady-AGC في الحقيقة (" + label17.Text + ") لن تختلف عن (" + label17.Text + "'

الحل بسيط جداً

الخطأ كان في SELECT COUNT(*)FROM أما الصحيح Select * from بدون COUNT

شكراً لكم تم الحل

#5

السلام عليكم

ملاحظة

إذا أردت معرفة عدد حقول الجدول

select count(FIELDNAME) from TABLENAME

أما إذا أردت اختيار كل الحقول بشرط معين

select * from TABLENAME where '" & x & "'"

علامة & أفضل من + فاستخدمها

تم تعديل هذه المشاركة بواسطة Mady-AGC في 28 يوليو 2011 في 09:31

منحة للخريجين وطلاب الجامعات و المعاهد

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

سبحان الله وبحمده سبحان الله العظيم

#6

شكراً اخ Mady-AGC علي ملحوظتك القيمة

#7

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

اخي Mady-AGC ليش افضل؟!!

.:: Wish to become better and better ::.

#8

السلام عليكم

لقد استخدمت العلامتين وكانت تحدث أحيانا مشاكل بسبب علامة + عند استخدام بيانات رقمية

أما علامة & فلا تحدث معها مشاكل سواء البيانات الرقمية أو النصية

منحة للخريجين وطلاب الجامعات و المعاهد

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

سبحان الله وبحمده سبحان الله العظيم

#9

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

اخي + هي علامة الجمع وكذلك الربط Concatenation, اما & فهي علامة AND ولكن في الفيجوال بيسك تستخدم للربط

.:: Wish to become better and better ::.

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