تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] نقل بيانات من فورم لاخر
#1
السلام عليكم ورحمة الله 

قمت بعمل واجهات بسيطة الواجهة الرئيسية يوجد بيها انظارات ويوجد ليبل لعرض عدد الانذارات ويظهر اذا كانت هناك انظارات متاحة او يختفي ان لم يوجد.

اذا تم تنفيذ الكود من واجهة لاخري مباشرتا تتم العملية بدون مشاكل ولكن اذا كان هنا ك بين الفورم الرئيسي والفرعي اكتر من فورم واردت تشغيل الكود لايظهر شيء كان ليس هناك كود .
حتي ان وضعت الكود ببوتن الغلق لم يتم اي شيء بالكود .
الداتا تابل تم وضعها بالكلاس الرئيسي لاستدعاؤها بكل الواجهات.


كود :
الداتا تابل تم وضعها بالكلاس الرئيسي لاستدعاؤها بكل الواجهات//

// public static DataTable DTLOGALARM = new DataTable();//


MAIN MAIN = new MAIN();

           if (MAINCODEB.DTLOGALARM.Rows.Count > 0)
           {
               MAIN.LAB_ALARMQOUT.Visible = true;
               MAIN.LAB_ALARMQOUT.Text = MAINCODEB.DTLOGALARM.Rows.Count.ToString();
           }
           else
           {
               MAIN.LAB_ALARMQOUT.Visible = false;

           }
الرد }}}
تم الشكر بواسطة:
#2
اخي العزيز اعمل كلاس جديد و لتسميه : ConnectionStringXT

ثم ضع الاكواد التالية هذه الاكواد للتعامل مع قواعد البيانات من نوع اكسيس تستطيع تعديلها لتناسب نوع قواعد البيانات الذي تعرفه :

كود :
   #region DatabaseThing
   public OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\MyDatabase.accdb;Jet OLEDB:Database Password=;");
   public DataTable FillDT(string StrSQL)
   {
       DataTable dt = new DataTable();
       OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, cn);
       if (cn.State == ConnectionState.Closed)
       {
           cn.Open();
       }
       da.Fill(dt);
       if (cn.State == ConnectionState.Open)
       {
           cn.Close();
       }
       return dt;
   }
   public void ExecuteNonQueryXT(string SqlStr)
   {
       OleDbCommand cmd = new OleDbCommand(SqlStr, cn);
       if (cn.State == System.Data.ConnectionState.Closed)
       {
           cn.Open();
       }
       cmd.ExecuteNonQuery();
       if (cn.State == System.Data.ConnectionState.Open)
       {
           cn.Close();
       }
   }
   public void FillComboBox(ComboBox Cmb, string SqlStr, string Col, string ValX)
   {
       DataTable dt = new DataTable();
       dt = FillDT(SqlStr);
       Cmb.DataSource = dt;
       Cmb.DisplayMember = Col;
       Cmb.ValueMember = ValX;
   }
   public int MaxID(string IDColum, string TableName)
   {
       int ID = 0;
       string StrSQL = "Select IIF(Max(" + IDColum + ") Is NULL,1,Max(" + IDColum + ")+1)As ID From " + TableName;
       ID = Convert.ToInt32(FillDT(StrSQL).Rows[0]["ID"].ToString());
       return ID;
   }
   #endregion
و عند الفورم التي تريد ان تعرض فيه عدد السجلات ضع السطر التالي في حدث اللود :

PHP كود :
ConnectionStringXT cls = new ConnectionStringXT();
LAB_ALARMQOUT.Text=cls.FillDT("Select * From ProductsTable").Rows.Count.ToString(); 

و الله الموفق .
الرد }}}
تم الشكر بواسطة: waw , ابراهيم ايبو , Miloud
#3
(09-09-21, 05:33 PM)asemshahen5 كتب : اخي العزيز اعمل كلاس جديد و لتسميه : ConnectionStringXT

ثم ضع الاكواد التالية هذه الاكواد للتعامل مع قواعد البيانات من نوع اكسيس تستطيع تعديلها لتناسب نوع قواعد البيانات الذي تعرفه :

كود :
   #region DatabaseThing
   public OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\MyDatabase.accdb;Jet OLEDB:Database Password=;");
   public DataTable FillDT(string StrSQL)
   {
       DataTable dt = new DataTable();
       OleDbDataAdapter da = new OleDbDataAdapter(StrSQL, cn);
       if (cn.State == ConnectionState.Closed)
       {
           cn.Open();
       }
       da.Fill(dt);
       if (cn.State == ConnectionState.Open)
       {
           cn.Close();
       }
       return dt;
   }
   public void ExecuteNonQueryXT(string SqlStr)
   {
       OleDbCommand cmd = new OleDbCommand(SqlStr, cn);
       if (cn.State == System.Data.ConnectionState.Closed)
       {
           cn.Open();
       }
       cmd.ExecuteNonQuery();
       if (cn.State == System.Data.ConnectionState.Open)
       {
           cn.Close();
       }
   }
   public void FillComboBox(ComboBox Cmb, string SqlStr, string Col, string ValX)
   {
       DataTable dt = new DataTable();
       dt = FillDT(SqlStr);
       Cmb.DataSource = dt;
       Cmb.DisplayMember = Col;
       Cmb.ValueMember = ValX;
   }
   public int MaxID(string IDColum, string TableName)
   {
       int ID = 0;
       string StrSQL = "Select IIF(Max(" + IDColum + ") Is NULL,1,Max(" + IDColum + ")+1)As ID From " + TableName;
       ID = Convert.ToInt32(FillDT(StrSQL).Rows[0]["ID"].ToString());
       return ID;
   }
   #endregion
و عند الفورم التي تريد ان تعرض فيه عدد السجلات ضع السطر التالي في حدث اللود :

PHP كود :
ConnectionStringXT cls = new ConnectionStringXT();
LAB_ALARMQOUT.Text=cls.FillDT("Select * From ProductsTable").Rows.Count.ToString(); 

و الله الموفق .


بشكر حضرتك علي الرد المشكلة مش في قاعدة البيانات او الاستعلام المشكلة حضرتك في اظهار او اخفاء ليبل بالفورم قبل الاخير
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#4
اعتقد المشكله في انك تعمل في كل واجهه
new DataTable
فتتسبب في ضياع البيانات السابقه

اذا انت عامل في الكلاس الرئيسي
public static DataTable dt = new DataTable();
فلا تعمل لها new بعد ذلك الا اذا كنت فعلا لا تريد البيانات السابقه
الرد }}}
#5
عرف متغيير من نوع بولين و من ثم استد له القيمة في الفورم الاول و ضعه على الخاصية Visible في حدث اللود او ضع متغيير في السيتنغ من نوع بولين و احفظه حسب الشرط و استدعه عند حدث اللود و الله الموفق .
الرد }}}
تم الشكر بواسطة: محمد اسماعيل , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل الكود هذا صحيح خاص بالربط مع قاعدة بيانات SQL server تركي احمد 0 212 15-02-24, 10:04 AM
آخر رد: تركي احمد
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 4,253 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  [سؤال] السلام عليكم بدون زحمة عندي نظام ارشفة مشتغلة بلغة سي شارب وقاعدة بيانات سكوال سيرفر مرتضى 1 675 13-05-23, 10:36 PM
آخر رد: عبدالله الدوسري
  [C#.NET] لماذا لا يتم عرض بيانات ahmed_king2023 0 548 22-04-23, 09:09 PM
آخر رد: ahmed_king2023
  [C#.NET] عرض بيانات قريد فيو في تكست بوكس ahmed_king2023 1 600 27-03-23, 04:54 PM
آخر رد: sanyor77
  انشاء قاعدة بيانات عن طرق الكود amonem 3 1,355 07-10-22, 12:51 PM
آخر رد: asemshahen5
  [سؤال] استيراد بيانات اصناف من الاكسيل لقاعدة بيانات البرنامج sql mazentq 8 2,344 09-07-22, 01:17 PM
آخر رد: asemshahen5
  عدد-بيانات-معينه-داخل-تقرير amonem 3 1,356 03-04-22, 09:42 PM
آخر رد: asemshahen5
  [سؤال] ازى اضغط على زر في فورم اول ما يفتح mazentq 10 2,534 14-03-22, 04:57 PM
آخر رد: talkybro1
  فورم في المقدمة على الفورم الرئيسي bidaya 5 1,765 23-02-22, 01:42 AM
آخر رد: bidaya

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم