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

مشكلة مع الداتا ريدر ..

بدأه @nana@ في 16 مارس 2010 · 12 رد · 649 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

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

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

بجد الكود دا حيرنى

ممكن اعرف الكود ايه المفروض يكون فيه

 private void CmdRemove_Click(object sender, EventArgs e)
        {
            cmd.CommandText = "select  * from vpayout";
            dr = cmd.ExecuteReader();
            dr.Read();
            if (dr.HasRows == false)
            {
                MessageBox.Show("الجدول لايحتوى على  سجلات", MsgTxtt.MsgTtl, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                dr.Close();
            }
            else if (dr.HasRows == true)
            {
                while (dr.Read() == true)
                {
                    int index = dr.FieldCount;
                    //MessageBox.Show(index.ToString());
                    string V_Id, V_Component, V_Model, V_Quantity;
                    V_Id = dr["poid"].ToString();
                    V_Component = dr["pocomponent"].ToString();
                    V_Model = dr["pomodel"].ToString();
                    V_Quantity = dr["poquantity"].ToString();
                    //if (dr.IsClosed == false)
                    //{
                    //    dr.Close();
                    //}
                    for (int i = 0; i < index; i++)
                    {
                        cmd.CommandText = "select * from storer where sid=' " + V_Id.Trim() + " ' and scomponent=' " + V_Component.Trim() + " ' and smodel=' " + V_Model.Trim() + " ' ";
                        dr = cmd.ExecuteReader();
                        if (dr.Read() == true)
                        {
                            if (dr.IsClosed == false)
                            {
                                dr.Close();
                            }
                            cmd.CommandText = " update storer set  squantity= squantity -  (' " + double.Parse(V_Quantity.Trim()) + " ')   where sid=' " + V_Id.Trim() + " ' and scomponent=' " + V_Component.Trim() + " ' and smodel=' " + V_Model + " ' ";
                            cmd.ExecuteNonQuery();

                            cmd.CommandText = " insert into payout (pono,podate,poid,pocomponent,pomodel,poquantity,posell,pototalsell,podisc,pototalaftdisc,poaftdisc) select * from vpayout where sid=' " + V_Id.Trim() + " ' and scomponent=' " + V_Component.Trim() + " ' and smodel=' " + V_Model + " ' ";
                            cmd.ExecuteNonQuery();

                        }

                    }
                }
                if (dr.IsClosed == false)
                {
                    dr.Close();
                }
                cmd.CommandText = "delete from vpayout ";
                cmd.ExecuteNonQuery();
                MessageBox.Show("تم الحذف", MsgTxtt.MsgTtl, MessageBoxButtons.OK, MessageBoxIcon.Information);
                ClearTxt();
                MessageBox.Show("تم ترحيل المبيعات بنجاح ", MsgTxtt.MsgTtl, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#3

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

وامبارح حضرتك لما قولت ع موضوع ال break point كويسة

بس هنا وقفت ف الكود داا

والخطأ ف الصورة

post-207938-12687464670654_thumb.jpg

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#4

هل أقفلت آخر ريدر استخدمته؟ يبدو لي أن هناك ريدر سابق مع نفس الكوماند.

#5

ايوة بس لما بقفله بيحصل بردوا مشكلة

طب الحل ايه المفروض لكل كوماند ريدر مثلا

طب الفورما موجودة ممكن حضرتك تشوفها

الخطأ بيحصل لما بضغط ع الزرار الخاص بترحيل

Pro.rar

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#6

?????????????????????????????????????

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#7

السلام عليكم

ممنوع منعا باتا تعريف datareader علي الفورمة .... و ده سبب المشكلة

قومي بتعريف داتا ريدر لكل method يعني تحت كل زرار عرفي داتا ريدر و اقفليه كالتالي:

private void CmdRemove_Click(object sender, EventArgs e)

{

try{

OleDbDataReader dr;

cmd.CommandText = "select * from vpayout";

dr = cmd.ExecuteReader();

dr.Read();

}

catch{

}

finally{

dr.close();

}

}

تم تعديل هذه المشاركة بواسطة robot2030 في 16 مارس 2010 في 19:45

[يمين]في زمان كل شئ فيه يتحرك بسرعة ... كونك ثابتا يعني انك تتحرك للوراء...

[/يمين]

#8

شكراااااااااااااااا ع الرد

بس بردوا نفس المشكلة

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#9

السلام عليكم

الكود ده خطا

for (int i = 0; i < index; i++)

{

cmd.CommandText = "select * from storer where sid=' " + V_Id.Trim() + " ' and scomponent=' " + V_Component.Trim() + " ' and smodel=' " + V_Model.Trim() + " ' ";

dr = cmd.ExecuteReader();

if (dr.Read() == true)

{

المفروض ان ال dr مفتوح اساسا مينفعش تفتحي ال dr مرتين ... اعملي dr تاني لل loop التانية و كل لووب ب dr و بعدين يتقفل ... كل ال dr لازم يتقفل في نفس الmethod

نصيحة

استخدمي ال Dataset اقوي بكتير و افضل في التنظيم ... اي نعم ال dr اسرع لكن الفرق غير ملحوظ

[يمين]في زمان كل شئ فيه يتحرك بسرعة ... كونك ثابتا يعني انك تتحرك للوراء...

[/يمين]

#10

عملت واحد تانى وبردوا مش شغال

بس دااتا سيت اعتتقد مش هتمشى ف الكود دا

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#11

لا الداتا سيت تنفع طبعا في الكود دا

و بعدين انتي لازم تقفلي الداتا ريدر في كل لفة قبل ما تفتحيه تاني ... الخطا بيقولك ازاي هفتح الداتا ريدر و هو مفتوح بالفعل و يوجد داتا ريدر راكب علي الكوماند دا ؟؟؟؟

فيبقي لازم في كل لفة loop تقفلي الداتا ريدر اللي جوا اللفة و بعدين تفتحيه تاني طبعا ما تقفليه تتاكدي انه مفتوح اصلا ....

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

سلام عليكم

[يمين]في زمان كل شئ فيه يتحرك بسرعة ... كونك ثابتا يعني انك تتحرك للوراء...

[/يمين]

#12

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

دلوقتى انا مبديا ال واقف معايا الترحيل

اولا شيكت ع الجدول الخاص بالمبيعات الوهمى ال هو vpayout اشوف فيه ريكوردات ولا مفهوش يقى مفيش ترحيل لجدول المبيعات

تانى نقطة فرضا فيه فانا بعمل لوب بعدد السجلات ال ف الجدول

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

وحطاهم ف متغيرات وبشيك بيهم ف الجدول الخاص بالمخزن storer عشان اعرف الصنف دا موجود ولا عندى

فرضااا موجود هيعدل الريكورد دااا بدلالة التلت متغيرت ال فيه ويعدل قيمة الكمية ال هتنقص

ويضيف الريكورد دا بكامل بياناته ف جدول المبيعات الاصلى payoyt فبكداا تكون تمت عملية الترحيل

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

الفورما ف المفرفقاااااااااااات

Pro.rar

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

#13

؟؟؟؟؟؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة @nana@ في 17 مارس 2010 في 20:55

Try 2 Change Ur Life 2 The Best

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

ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم

428503365.gif

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

/

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