تقييم الموضوع :
  • 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 في حدث اللود او ضع متغيير في السيتنغ من نوع بولين و احفظه حسب الشرط و استدعه عند حدث اللود و الله الموفق .
الرد }}
تم الشكر بواسطة: محمد اسماعيل , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  انشاء قاعدة بيانات عن طرق الكود amonem 2 204 01-06-22, 02:37 AM
آخر رد: amonem
  عدد-بيانات-معينه-داخل-تقرير amonem 3 585 03-04-22, 09:42 PM
آخر رد: asemshahen5
  [سؤال] ازى اضغط على زر في فورم اول ما يفتح mazentq 10 1,222 14-03-22, 04:57 PM
آخر رد: talkybro1
  فورم في المقدمة على الفورم الرئيسي bidaya 5 692 23-02-22, 01:42 AM
آخر رد: bidaya
  [سؤال] تحديث قاعدة بيانات العملاء kasber 3 830 17-02-22, 09:48 PM
آخر رد: محمود بكرى
  [سؤال] استيراد بيانات اصناف من الاكسيل لقاعدة بيانات البرنامج sql mazentq 7 944 05-02-22, 02:16 AM
آخر رد: mazentq
  كيف اقوم بربط قاعدة بيانات server sql// SQLite محمدعبدالسلام 3 677 25-01-22, 10:54 PM
آخر رد: ابراهيم ايبو
  كيف يمكنني بمجرد ان يتم فتح فورم لاول تم يتم فتح الفورم الثاني abdalwahd 7 746 22-01-22, 08:28 PM
آخر رد: ابراهيم ايبو
  [C#.NET] اتصال بقاعدة بيانات ماي اس كيو ال علي الشبكة محمد اسماعيل 0 545 22-12-21, 08:47 PM
آخر رد: محمد اسماعيل
  [C#.NET] ربط قاعدة بيانات الأكسس بسى شارب محمود احمد سعد 12 2,343 17-04-21, 06:49 AM
آخر رد: amiria

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


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