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

مالخطا فى جملة التعديل هذه

بدأه محب اصحاب النبى في 24 يوليو 2010 · 5 رد · 541 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا الان اقوم بعمل برنامج صغير وفيه خاصية تعديل البيانات ولكنى مع انى كتبت الكود الاتى الا انه لايعمل فما الحل؟؟؟؟؟؟؟؟

مع العلم ان البرنامج بعد عدة محاولات واقصد بعد تشغيل البرنامج اذهب لتعديل بيان معين فلا يحدث شىء واجرب اكثر من مره وبعد اغلاق البرنامج والفيجوال ستوديو وقاعدة البيانات

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

هذا كود التعديل

        oleDbDataAdapter.UpdateCommand = new OleDbCommand("update faxes set id=@id , alqeed=@alqeed , mokatabadate=@mokatabadate , wareddate=@wareddate ,faxtext=@faxtext,savingplace=@savingplace", oleDbConnection);

            oleDbDataAdapter.UpdateCommand.Parameters.Add("@Id", OleDbType.Integer, 10, "Id");
            oleDbDataAdapter.UpdateCommand.Parameters.Add("@alqeed", OleDbType.VarChar, 50, "alqeed");
            oleDbDataAdapter.UpdateCommand.Parameters.Add("@mokatabadate", OleDbType.Date, 12, "mokatabadate");
            oleDbDataAdapter.UpdateCommand.Parameters.Add("@wareddate", OleDbType.Date, 12, "wareddate");
            oleDbDataAdapter.UpdateCommand.Parameters.Add("@faxtext", OleDbType.VarChar, 250, "faxtext");
            oleDbDataAdapter.UpdateCommand.Parameters.Add("@savingplace", OleDbType.VarChar, 50, "savingplace");


  DataAdapter.UpdateCommand.Parameters["@id"].Value = comboBox2.Text;
                DataAdapter.UpdateCommand.Parameters["@alqeed"].Value = textBox2.Text;
                DataAdapter.UpdateCommand.Parameters["@mokatabadate"].Value = dateTimePicker1.Text;
                DataAdapter.UpdateCommand.Parameters["@wareddate"].Value = dateTimePicker2.Text;
                DataAdapter.UpdateCommand.Parameters["@faxtext"].Value = richTextBox1.Text;
                DataAdapter.UpdateCommand.Parameters["@savingplace"].Value = comboBox1.Text;

                DataAdapter.Update(DatSet, "faxes");

طبعا انا شغال على الوضع المنفصل ياريت ان لم يتم فهم قصدى ان يكتب لى احد الاخوه كود التعديل بالسى شارب او يدلنى على الموضوع

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

ان صنائع المعروف تقى مصارع السوء

وان كثرة الصلاة على النبى محمد صلى الله عليه وسلم

تُغفر بها الذنوب وتُقضى بها الحوائج وتُفرًّج بها الهموم.

اللهم صلى على سيدنا محمد وعلى اهله واصحابه اجمعيـــن

-------------------------------------------------------------------------------------------

#2

طبعاً سيحدث هذا لأن تعليمة Updata لا تحوي على Where لذلك سيتم تطبيقها على جميع السجلات :

  oleDbDataAdapter.UpdateCommand = new OleDbCommand("update faxes set alqeed=@alqeed , mokatabadate=@mokatabadate , wareddate=@wareddate ,faxtext=@faxtext,savingplace=@savingplace where  id=@id", oleDbConnection);

على إعتبار أن Id هو Primary Key ( يفضل أن لا تسمح بعملية تعديله ) ...

بالتوفيق

2
#3

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

جزاك الله خيرا يا اخ حسام

ولكن ماذا ان اردت ان لا اضع where فى الجمله اليس من المفترض ان يتم التعديل لان فى برنامج اخر رايته يستخدم datagridview فى العرض والتعديل ولم يكتب شرط ال where وكل حاجه تمام؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

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

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

    int i = DataAdapter.Update(DatSet, "faxes");
                MessageBox.Show("تم تعديل "+i.ToString(""),"عدد التعديلات");

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

  "select * from faxes where wareddate ='21/07/2010' "

وهناك سؤال اخر كيف اجعل ال combo box للقراءه فقط لايستطيع المستخدم الكتابه فيه مع العلم انى عامل له bind لحقل من البيانات بحيث تختار منه رقم ال id يتم عرض البيانات فو عملت خاصية ال enable=false فهذا يجعلنى لااستطيع الاختيار من عناصره لذلك ماالحل

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

تم تعديل هذه المشاركة بواسطة محب اصحاب النبى في 24 يوليو 2010 في 18:44

ان صنائع المعروف تقى مصارع السوء

وان كثرة الصلاة على النبى محمد صلى الله عليه وسلم

تُغفر بها الذنوب وتُقضى بها الحوائج وتُفرًّج بها الهموم.

اللهم صلى على سيدنا محمد وعلى اهله واصحابه اجمعيـــن

-------------------------------------------------------------------------------------------

#4

ارجو ان يكون سؤالى مفهوم

ان صنائع المعروف تقى مصارع السوء

وان كثرة الصلاة على النبى محمد صلى الله عليه وسلم

تُغفر بها الذنوب وتُقضى بها الحوائج وتُفرًّج بها الهموم.

اللهم صلى على سيدنا محمد وعلى اهله واصحابه اجمعيـــن

-------------------------------------------------------------------------------------------

#5

أولاً آخي الرجاء التخفيف من الألوان وتغيير الخط المستخدم في ردودك ، ماذا به الخط الإفتراضي و اللون الأسود ؟ صدقني كثرة الألون لن تجلب إجابة و لن تجلب سوى إزعاج الناظر فقط ...

بالنسبة لآسئلتك :

GridView تقوم بذلك ضمنياً و يتم تنفيذ Where :wink: ...

بالنسبة للسجل الآخير الذي لايتم تعديله : هل تسخدم GridView ؟ هل تقوم بعملية إستدعاء GridView.EndEdit() قبل عملية الحفظ ؟

بالنسبة للبحث عن تاريخ : يجب إستخدام تابع التحويل إلى تاريخ عند عملية البحث ..

بالنسبة للـCombo Box فهناك خاصية DropDownStyle ضعها على القيمة DropDownList >>

وآخيراً يرجى البحث في المنتدى قبل إضافة أي سؤال آخر :wink: ...

بالتوفيق

#6

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

اما التعديل يتم من على ادوات ال textboxes على الفورم ولااستخدم datagrid view

اقتباس
بالنسبة للبحث عن تاريخ : يجب إستخدام تابع التحويل إلى تاريخ عند عملية البحث .

مش عارف قصدك ايه بالضبط

انا اكتب الكود الاتى

oledbDataAdapter = new OleDbDataAdapter("select * from faxes where wareddate='1/1/2001' ", oleDbConnection);
          oledbDataAdapter.Fill(dataSet, "faxes");

جزاك الله خيرا وبارك فى علمك وزادك وايانا من فضله

ان صنائع المعروف تقى مصارع السوء

وان كثرة الصلاة على النبى محمد صلى الله عليه وسلم

تُغفر بها الذنوب وتُقضى بها الحوائج وتُفرًّج بها الهموم.

اللهم صلى على سيدنا محمد وعلى اهله واصحابه اجمعيـــن

-------------------------------------------------------------------------------------------

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