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

نسخة كاملة : مشكله فى كوود cannot open any more table
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لانى حاسس انه بطىء غير انه يوجد رساله خطأ بتقول
Cannot open any more tables
ارجوا من حضراتكوا تنظيم او تعديل الكوود
الكود هو لجلب البيانات من جدولين واضافتهم لdata grid view
مع ارتباط جلب البيانات بينهم

كود :
       public void Getdatainliad()
       {
           try
           {

               OleDbConnection con = new OleDbConnection(ModCS.cs);
               con.Open();
               OleDbCommand cmd = new OleDbCommand("SELECT Allnames.ID, Allnames.name, Allnames.telnmber, Allnames.flex, Allnames.internet, Allnames.id_number , Allnames.tabe3, Allnames.other, Allnames.datafirst , Allnames.code2 , Allnames.cash   from Allnames order by ID", con);

               OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
               ///-----------
               dgw.Rows.Clear();
               while (rdr.Read() == true)
               {
                   //-------------
                   int code = Convert.ToInt32(rdr[0]);

                   string cb2 = string.Format("SELECT * from elsadad where elsadad.codenames Like '%{0}%' and elsadad.dateelsadad Like '%{1}%' ", code, dateTimePicker1.Text);
                   OleDbCommand cmd2 = new OleDbCommand(cb2);

                   cmd2.Connection = con;


                   OleDbDataReader rdr2 = cmd2.ExecuteReader(CommandBehavior.CloseConnection);


                   Image done = Properties.Resources.apply_16x16;
                   Image errorr = Properties.Resources.cancel_16x16;
                   Image done1 = Properties.Resources.apply_16x162;
                   Image errorr1 = Properties.Resources.close_16x16;
                   Image ddd;
                   Image ddd2;
                   if (rdr2.HasRows == true)
                   {
                       ddd = done;
                   }
                   else
                   {
                       ddd = errorr;
                   }
                   
                   if (rdr[9].ToString() == "1")
                   {
                       ddd2 = done1;
                   }
                   else
                   {
                       ddd2 = errorr1;
                   }

                   dgw.Rows.Add(rdr[0], ddd, rdr[1], rdr[2], rdr[3], rdr[4], rdr[5], rdr[6], rdr[7], rdr[8], ddd2, rdr[10], rdr[9]);
                   //con2.Close();
               }






               // ==== Get sum cash =====


               string cb3 = string.Format("SELECT SUM (cash) FROM elsadad where elsadad.dateelsadad Like '%{0}%' ", dateTimePicker1.Text);
               OleDbCommand cmd3 = new OleDbCommand(cb3);

               cmd3.Connection = con;


               //OleDbDataReader rdr3 = cmd3.ExecuteReader(CommandBehavior.CloseConnection);
               object result = cmd3.ExecuteScalar();
               txtsum.Text = Convert.ToString(result);
               rdr.Close();
               con.Close();
               ///=======================

               this.ActiveControl = dateTimePicker1;

               GC.Collect();


           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }
       }
(15-10-22, 03:03 AM)khataan88 كتب : [ -> ]لانى حاسس انه بطىء غير انه يوجد رساله خطأ بتقول
Cannot open any more tables
ارجوا من حضراتكوا تنظيم او تعديل الكوود
الكود هو لجلب البيانات من جدولين واضافتهم لdata grid view
مع ارتباط جلب البيانات بينهم

كود :
       public void Getdatainliad()
       {
           try
           {

               OleDbConnection con = new OleDbConnection(ModCS.cs);
               con.Open();
               OleDbCommand cmd = new OleDbCommand("SELECT Allnames.ID, Allnames.name, Allnames.telnmber, Allnames.flex, Allnames.internet, Allnames.id_number , Allnames.tabe3, Allnames.other, Allnames.datafirst , Allnames.code2 , Allnames.cash   from Allnames order by ID", con);

               OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
               ///-----------
               dgw.Rows.Clear();
               while (rdr.Read() == true)
               {
                   //-------------
                   int code = Convert.ToInt32(rdr[0]);

                   string cb2 = string.Format("SELECT * from elsadad where elsadad.codenames Like '%{0}%' and elsadad.dateelsadad Like '%{1}%' ", code, dateTimePicker1.Text);
                   OleDbCommand cmd2 = new OleDbCommand(cb2);

                   cmd2.Connection = con;


                   OleDbDataReader rdr2 = cmd2.ExecuteReader(CommandBehavior.CloseConnection);


                   Image done = Properties.Resources.apply_16x16;
                   Image errorr = Properties.Resources.cancel_16x16;
                   Image done1 = Properties.Resources.apply_16x162;
                   Image errorr1 = Properties.Resources.close_16x16;
                   Image ddd;
                   Image ddd2;
                   if (rdr2.HasRows == true)
                   {
                       ddd = done;
                   }
                   else
                   {
                       ddd = errorr;
                   }
                   
                   if (rdr[9].ToString() == "1")
                   {
                       ddd2 = done1;
                   }
                   else
                   {
                       ddd2 = errorr1;
                   }

                   dgw.Rows.Add(rdr[0], ddd, rdr[1], rdr[2], rdr[3], rdr[4], rdr[5], rdr[6], rdr[7], rdr[8], ddd2, rdr[10], rdr[9]);
                   //con2.Close();
               }






               // ==== Get sum cash =====


               string cb3 = string.Format("SELECT SUM (cash) FROM elsadad where elsadad.dateelsadad Like '%{0}%' ", dateTimePicker1.Text);
               OleDbCommand cmd3 = new OleDbCommand(cb3);

               cmd3.Connection = con;


               //OleDbDataReader rdr3 = cmd3.ExecuteReader(CommandBehavior.CloseConnection);
               object result = cmd3.ExecuteScalar();
               txtsum.Text = Convert.ToString(result);
               rdr.Close();
               con.Close();
               ///=======================

               this.ActiveControl = dateTimePicker1;

               GC.Collect();


           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }
       }

كود :
public void Getdatainliad()
{
    OleDbConnection con = new OleDbConnection(ModCS.cs);
    try
    {
        con.Open();
        DateTime date = dateTimePicker1.Value.Date;

        OleDbCommand cmd1 = new OleDbCommand("SELECT ID, name, telnmber, flex, internet, id_number, tabe3, other, datafirst, code2, cash FROM Allnames", con);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd1);

        DataTable dt = new DataTable();
        da.Fill(dt);

        foreach (DataRow rdr in dt.Rows)
        {
            //-------------
            int code = Convert.ToInt32(rdr["ID"]);

            OleDbCommand cmd2 = new OleDbCommand("SELECT COUNT(*) FROM elsadad WHERE codenames=@code AND dateelsadad=@date", con);
            cmd2.Parameters.AddWithValue("@code", code);
            cmd2.Parameters.AddWithValue("@date", date);

            int rows = (int)cmd2.ExecuteScalar() ;
            bool hasRows = rows > 0;
            Image ddd1 = hasRows ? Properties.Resources.apply_16x162 : Properties.Resources.cancel_16x16;
            Image ddd2 = rdr["cash"].Equals("1") ? Properties.Resources.apply_16x162 : Properties.Resources.close_16x16;

            dgw.Rows.Add(rdr["ID"], ddd1, rdr["name"], rdr["telnmber"], rdr["flex"], rdr["internet"], rdr["id_number"], rdr["tabe3"], rdr["other"], rdr["datafirst"], ddd2, rdr["code2"], rdr["cash"]);
        }


        // ==== Get sum cash =====
        OleDbCommand cmd3 = new OleDbCommand("SELECT SUM(cash) FROM elsadad WHERE dateelsadad=@date", con);
        cmd3.Parameters.AddWithValue("@date", date);

        object result = cmd3.ExecuteScalar();
        txtsum.Text = Convert.ToString(result);
        ///=======================

        this.ActiveControl = dateTimePicker1;

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
        con.Close();
    }
}
الف مليون شكر
تحياتى لك