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

مطلوب مساعدة بسيطة في ال ADO

مغلق
بدأه specialman في 7 فبراير 2006 · 10 رد · 759 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

السؤال :

انا عندي جدول خاص مثلا بالموردين يحتوي علي الحقول الاتية علي سبيل المثال

supplier_id_supplier_name,supplier_code,supplier_phone1,supplier_phone2

مع العلم بان حقل supplier_id من نوع autonumber

وعندي interface بيدخل المستخدم من خلالها قيم الاسم والتاريخ والكمية

والكود الذي اكتبه لكي يقوم بعملية الادخال هوعند الضغط علي زر اضافة

OleDbConnection c = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source 
= D:\\1pharmacy\\database\\pharmacy.mdb");
                            string s1 = textBox1.Text;
                            decimal d1 =Convert.ToDecimal(textBox2.Text);
                            decimal d2 = Convert.ToDecimal(textBox3.Text);
                            decimal d3 = Convert.ToDecimal(textBox4.Text);                           
                            OleDbCommand command = new OleDbCommand("insert into Suppliers values (s1,d1,d2,d3)",c);
                try
                {
                    c.Open();
                            command1.ExecuteNonQuery();
               }

           catch (OleDbException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    if (c.State == ConnectionState.Open)
                        c.Close();
                }

ويواجهني عند الضغط علي زر اضافة

رسالة مرفقة بالصورة

فارجو حل هذه المشكلة

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

شكرا لكم جميعا

post-48485-1139259882_thumb.jpg

pharmacy.rar

تم تعديل هذه المشاركة بواسطة specialman في 7 فبراير 2006 في 00:56

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#2

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

#3

اخي فراس انت ملاحظتش اللي انا كتبته انا كتبت ان الجدول يتكون من خمس حقول منهم واحده supp_id عبارة عن autonumber ولذلك لا تدخل قيمتها عن طريق المستخدم

ماهو هي دي المشكلة اني لما اجي اكتب جملة insert بدخل فيها قيم الحقول الاربعة الاخري دون الاول لاني لا اعرف ماذا اكتب مكان الحقل الاول في جملة insert وبذلك تنتج الرسالة المرفقة بالصورة اعلاه

شكرا لك اخي فراس وارجو ان تكون قد تفهمت المشكلة

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#4

السلام عليكم

الا يوجد رد علي سؤالي

اين الخبراء والمشرفين

ارجو الرد

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#5

أخي الفاضل المشكلة في جملة الاستعلام

حيث أنك تقوم بتخزين S1 ,... على انها هي القيم وليست متغيرات تحتوي القيم التي تريد تخزينها

وبما أن النص يجب ان يكون بين علامتي تنصيص مفردة يظهر هذا الخطأ

لذلك يجب تغيير الجملة كالتالي:

OleDbCommand command = new OleDbCommand("insert into Suppliers values ('"+s1+"',"+d1+","+d2+","+d3+");",c);

بالمناسبة لقد قرأت هذه المشاركة او مشاركة شبيهة لها وقد قمت بعمل برنامج كامل

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

وتجد البرنامج في المرفقات

أسال الله لي ولك التوفيق

Complete.rar

تم تعديل هذه المشاركة بواسطة ibn_als3odiah في 7 فبراير 2006 في 14:10

3424.gif
#6

شكرا يابن السعودية

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

لكن مازال الخطأ موجود مع التعديل الذي اشرت اليه

فارجو المحاولة معي

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#7

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

يجب تحديد أسماء الأعمدة التي سوف تضع فيها القيم s1,d1,d2,d3

OleDbCommand command = new OleDbCommand("insert into Suppliers (supplier_id_supplier_name,supplier_code,supplier_phone1,supplier_phone2) values ('"+s1+"',"+d1+","+d2+","+d3+");",c);

لاحظ اذا ال ID خاصيته ترقيم تلقائي فلا داعي لادراجه في جملة الاستعلام

لاتنسى التركيز على الجملة الموجودة في البرنامج الذي وضعته

3424.gif
#8
specialman كتب:
اخي فراس انت ملاحظتش اللي انا كتبته انا كتبت ان الجدول يتكون من خمس حقول منهم واحده supp_id عبارة عن autonumber ولذلك لا تدخل قيمتها عن طريق المستخدم

ماهو هي دي المشكلة اني لما اجي اكتب جملة insert بدخل فيها قيم الحقول الاربعة الاخري دون الاول لاني لا اعرف ماذا اكتب مكان الحقل الاول في جملة insert وبذلك تنتج الرسالة المرفقة بالصورة اعلاه

شكرا لك اخي فراس وارجو ان تكون قد تفهمت المشكلة

أخي راجع قاعدة البيانات التي أرفقتها ..... الجدول Supplier لا يحتوي غير ثلاث أعمدة ....

أكتب الإستعلام كما يلي

insert into Suppliers values (1,2,3)

و سيعمل البرنامج ...

#9

أخي :

كما قال الأخ الكريم ibn_als3odiah فإن الخطأ في جملة ال insert نفسها

OleDbCommand }خةةشىي=new OleDbCommand ("insert into Suppliers (supplier_id,supplier_name,supplier_code,supplier_phone1,supplier_phone2) values ("+s1+","+d1+","+d2+","+d3+")",connection);

جرب هذا الكود وأخبرني

#10

انا مرفق مثال على الموضوع فيه طريقة الاضافة الصحيحة باستخدام ADO.Net طبعا المثال مش محدد مسار قاعدة البيانات - طبعاً تقدر تستغني عن الطريقة هادي وتحدد مسار القاعدة - مش هيختلف ابدا طريقة كتابة الكود و ستجد ايضا كود الحذف - وإن شاء الله يفيدك

database.zip

#11

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

شكرا جزيلا لكم اخواني الكرام

لقد تم عمل البرنامج بنجاح

شكرا

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

هذا الموضوع مغلق.

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

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

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

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

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