منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كود حفظ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : كود حفظ (/showthread.php?tid=30622)

الصفحات: 1 2


كود حفظ - amonem - 30-07-19

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

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

جدول بيانات العاملين  =     Employ
جدول الداتا فيو رقم 1 =     Table_1
جدول الداتا فيو رقم 2 =     Table_2
جدول الداتا فيو رقم 3 =     Table_3
جدول الداتا فيو رقم 4 =     Table_4

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

وجزاكم الله عنا كل خير وزادكم الله علما نافعا ورزقا واسعا


RE: كود حفظ - amonem - 30-07-19

اتمنى اجد من يساعدنى فى هذا الطلب


RE: كود حفظ - asemshahen5 - 31-07-19

انا اطلع الان على المثال و لكن عندي سؤال :

ما اسم الجدول الذي يخزن به اسم الموظف .


RE: كود حفظ - amonem - 31-07-19

(31-07-19, 12:15 AM)asemshahen5 كتب : انا اطلع الان على المثال و لكن عندي سؤال :

ما اسم الجدول الذي يخزن به اسم الموظف .

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

اسم الجدول 
Employ
ودي صوره من جدول الموظفين وصوره من الجداول الفرعيه


RE: كود حفظ - amonem - 31-07-19

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

هل من مجيب


RE: كود حفظ - asemshahen5 - 31-07-19

ضع هذا بالكلاس :

PHP كود :
     public static void SaveColumnValueXT(DataGridView DGV_EmployInt32 RowIndexstring TableName string IDColInt32 IDColIndexbool IdentityIncrement)
 
       {
 
           if (RowIndex 0)
 
           {
 
               return;
 
           }
 
           ArrayList ArrCol = new ArrayList();
 
           ArrCol FillArrayList(TableName);
 
           //if (DGV_Employ.Rows[RowIndex].Cells[IDColIndex].Value != null)
 
           //{
 
           DataGridViewRow dgvRow DGV_Employ.Rows[RowIndex];
 
           SqlCommand sqlCmd = new SqlCommand();
 
           sqlCmd.CommandType CommandType.Text;
 
           string SqlStr string.Empty;
 
           string SqlPar string.Empty;

 
           if (DGV_Employ.Rows[RowIndex].Cells[IDColIndex].Value.ToString() == string.Empty || RowIndex == DGV_Employ.Rows.Count 2)//Insert
 
           {
 
               SqlStr "INSERT INTO " TableName "(";
 
               for (int i 0ArrCol.Counti++)
 
               {
 
                   if (== ArrCol.Count 1)
 
                   {
 
                       if (IdentityIncrement == true)
 
                       {
 
                           if (IDCol == ArrCol[i].ToString())
 
                           {
 
                               continue;
 
                           }
 
                       }

 
                       SqlStr += ArrCol[i].ToString() + ")VALUES(";
 
                       SqlPar += "@" ArrCol[i].ToString() + ")";
 
                   }
 
                   else
                    
{
 
                       if (IdentityIncrement == true)
 
                       {
 
                           if (IDCol == ArrCol[i].ToString())
 
                           {
 
                               continue;
 
                           }
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + ",";
 
                       SqlPar += "@" ArrCol[i].ToString() + ",";
 
                   }
 
               }
 
               SqlStr += SqlPar;
 
               sqlCmd = new SqlCommand(SqlStrCon);
 
           }
 
           else //update
 
           {
 
               SqlStr "UPDATE " TableName " SET ";
 
               for (int i 0ArrCol.Counti++)
 
               {

 
                   if (== ArrCol.Count 1)
 
                   {
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + "=@" ArrCol[i].ToString();
 
                   }
 
                   else
                    
{
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + "=@" ArrCol[i].ToString() + ",";
 
                   }
 
               }
 
               SqlStr += " WHERE " IDCol "=@" IDCol "" "";
 
               sqlCmd = new SqlCommand(SqlStrCon);
 
           }
 
           for (int i 0ArrCol.Counti++)
 
           {
 
               if (SqlStr.Contains("UPDATE"))
 
               {
 
                   sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value == null "" DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());
 
               }
 
               else if (SqlStr.Contains("INSERT"))
 
               {
 
                   if (IdentityIncrement == true)
 
                   {
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       else
                        
{
 
                           sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());// == DBNull.Value ? "" : dgvRow.Cells[i].Value.ToString());
 
                       }
 
                   }
 
                   else
                    
{
 
                       sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());// == DBNull.Value ? "" : dgvRow.Cells[i].Value.ToString());
 
                   }
 
               }
 
           }
 
           Con.Open();
 
           sqlCmd.ExecuteNonQuery();
 
           Con.Close();
 
           FillDGV(DGV_Employ"Select * From " TableName);
 
       }

 
       private static ArrayList FillArrayList(string TableName)
 
       {
 
           DataTable DT = new DataTable();
 
           ArrayList ColumnNameXT = new ArrayList();
 
           ColumnNameXT.Clear();
 
           DT DB.ExecSelect("Select * From "TableName);
 
           for (int i 0DT.Columns.Counti++)
 
           {
 
               ColumnNameXT.Add(DT.Columns[i].ColumnName);
 
           }
 
           return ColumnNameXT;
 
       

و هذا كود استخدامه :

PHP كود :
       private void DGV_Employ_CellValueChanged(object senderDataGridViewCellEventArgs e)
 
       {
 
           DB.SaveColumnValueXT(DGV_Employe.RowIndex"Employ" "Emp_ID",0,true);
 
       

و اصلح كود التنظيف كالتالي :

PHP كود :
       public static void CleanAllControl(Control ctrlParentbool DGVCleanRow)
 
       {
 
           foreach (Control ctrl in ctrlParent.Controls)
 
           {
 
               if (ctrl.HasChildren == true)
 
               {
 
                   CleanAllControl(ctrlDGVCleanRow);
 
               }
 
               if (ctrl is System.Windows.Forms.TextBox)
 
               {
 
                   ctrl.Text "";
 
               }
 
               else if (ctrl is CheckBox)
 
               {
 
                   //bool chk;
 
                   CheckBox chk ctrlParent.Controls[ctrl.Name] as CheckBox;
 
                   chk.Checked false;
 
               }
 
               else if (ctrl is System.Windows.Forms.ComboBox)
 
                   ctrl.Text "";
 
               else if (ctrl is DataGridView)
 
               {
 
                   if (DGVCleanRow == true)
 
                   {
 
                       DataGridView Dgv ctrlParent.Controls[ctrl.Name] as DataGridView;
 
                       Dgv.DataSource null;
 
                   }
 
               }
 
           }
 
           //return StrD;
 
       

PHP كود :
               //true لتنظيف الجداول ايضا//false لا تنظف الجداول
 
               DB.CleanAllControl(thistrue); 

كود الماكس عدلته لك في موضوع آخر .

نسيت إخبارك إحذف كل أزرار الحذف من الجداول ليعمل الكود على اي جدول .


RE: كود حفظ - amonem - 31-07-19

(31-07-19, 10:28 AM)asemshahen5 كتب : ضع هذا بالكلاس :

PHP كود :
     public static void SaveColumnValueXT(DataGridView DGV_EmployInt32 RowIndexstring TableName string IDColInt32 IDColIndexbool IdentityIncrement)
 
       {
 
           if (RowIndex 0)
 
           {
 
               return;
 
           }
 
           ArrayList ArrCol = new ArrayList();
 
           ArrCol FillArrayList(TableName);
 
           //if (DGV_Employ.Rows[RowIndex].Cells[IDColIndex].Value != null)
 
           //{
 
           DataGridViewRow dgvRow DGV_Employ.Rows[RowIndex];
 
           SqlCommand sqlCmd = new SqlCommand();
 
           sqlCmd.CommandType CommandType.Text;
 
           string SqlStr string.Empty;
 
           string SqlPar string.Empty;

 
           if (DGV_Employ.Rows[RowIndex].Cells[IDColIndex].Value.ToString() == string.Empty || RowIndex == DGV_Employ.Rows.Count 2)//Insert
 
           {
 
               SqlStr "INSERT INTO " TableName "(";
 
               for (int i 0ArrCol.Counti++)
 
               {
 
                   if (== ArrCol.Count 1)
 
                   {
 
                       if (IdentityIncrement == true)
 
                       {
 
                           if (IDCol == ArrCol[i].ToString())
 
                           {
 
                               continue;
 
                           }
 
                       }

 
                       SqlStr += ArrCol[i].ToString() + ")VALUES(";
 
                       SqlPar += "@" ArrCol[i].ToString() + ")";
 
                   }
 
                   else
                    
{
 
                       if (IdentityIncrement == true)
 
                       {
 
                           if (IDCol == ArrCol[i].ToString())
 
                           {
 
                               continue;
 
                           }
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + ",";
 
                       SqlPar += "@" ArrCol[i].ToString() + ",";
 
                   }
 
               }
 
               SqlStr += SqlPar;
 
               sqlCmd = new SqlCommand(SqlStrCon);
 
           }
 
           else //update
 
           {
 
               SqlStr "UPDATE " TableName " SET ";
 
               for (int i 0ArrCol.Counti++)
 
               {

 
                   if (== ArrCol.Count 1)
 
                   {
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + "=@" ArrCol[i].ToString();
 
                   }
 
                   else
                    
{
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       SqlStr += ArrCol[i].ToString() + "=@" ArrCol[i].ToString() + ",";
 
                   }
 
               }
 
               SqlStr += " WHERE " IDCol "=@" IDCol "" "";
 
               sqlCmd = new SqlCommand(SqlStrCon);
 
           }
 
           for (int i 0ArrCol.Counti++)
 
           {
 
               if (SqlStr.Contains("UPDATE"))
 
               {
 
                   sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value == null "" DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());
 
               }
 
               else if (SqlStr.Contains("INSERT"))
 
               {
 
                   if (IdentityIncrement == true)
 
                   {
 
                       if (IDCol == ArrCol[i].ToString())
 
                       {
 
                           continue;
 
                       }
 
                       else
                        
{
 
                           sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());// == DBNull.Value ? "" : dgvRow.Cells[i].Value.ToString());
 
                       }
 
                   }
 
                   else
                    
{
 
                       sqlCmd.Parameters.AddWithValue("@" ArrCol[i].ToString(), DGV_Employ.Rows[RowIndex].Cells[i].Value.ToString());// == DBNull.Value ? "" : dgvRow.Cells[i].Value.ToString());
 
                   }
 
               }
 
           }
 
           Con.Open();
 
           sqlCmd.ExecuteNonQuery();
 
           Con.Close();
 
           FillDGV(DGV_Employ"Select * From " TableName);
 
       }

 
       private static ArrayList FillArrayList(string TableName)
 
       {
 
           DataTable DT = new DataTable();
 
           ArrayList ColumnNameXT = new ArrayList();
 
           ColumnNameXT.Clear();
 
           DT DB.ExecSelect("Select * From "TableName);
 
           for (int i 0DT.Columns.Counti++)
 
           {
 
               ColumnNameXT.Add(DT.Columns[i].ColumnName);
 
           }
 
           return ColumnNameXT;
 
       

و هذا كود استخدامه :

PHP كود :
       private void DGV_Employ_CellValueChanged(object senderDataGridViewCellEventArgs e)
 
       {
 
           DB.SaveColumnValueXT(DGV_Employe.RowIndex"Employ" "Emp_ID",0,true);
 
       

و اصلح كود التنظيف كالتالي :

PHP كود :
       public static void CleanAllControl(Control ctrlParentbool DGVCleanRow)
 
       {
 
           foreach (Control ctrl in ctrlParent.Controls)
 
           {
 
               if (ctrl.HasChildren == true)
 
               {
 
                   CleanAllControl(ctrlDGVCleanRow);
 
               }
 
               if (ctrl is System.Windows.Forms.TextBox)
 
               {
 
                   ctrl.Text "";
 
               }
 
               else if (ctrl is CheckBox)
 
               {
 
                   //bool chk;
 
                   CheckBox chk ctrlParent.Controls[ctrl.Name] as CheckBox;
 
                   chk.Checked false;
 
               }
 
               else if (ctrl is System.Windows.Forms.ComboBox)
 
                   ctrl.Text "";
 
               else if (ctrl is DataGridView)
 
               {
 
                   if (DGVCleanRow == true)
 
                   {
 
                       DataGridView Dgv ctrlParent.Controls[ctrl.Name] as DataGridView;
 
                       Dgv.DataSource null;
 
                   }
 
               }
 
           }
 
           //return StrD;
 
       

PHP كود :
               //true لتنظيف الجداول ايضا//false لا تنظف الجداول
 
               DB.CleanAllControl(thistrue); 

كود الماكس عدلته لك في موضوع آخر .

نسيت إخبارك إحذف كل أزرار الحذف من الجداول ليعمل الكود على اي جدول .
الف شكر ليك استاذي الفالى 
بس لو ممكن تتعب شويه معايا وترفق الاكواد داخل الملف 
اكون شاكر جدا لحضرتك لاننى حاولت افهم الكود مقدرتش لقلة خبرتى 
وجزاك الله كل خير


RE: كود حفظ - asemshahen5 - 01-08-19

الكود هو عبارة عن مصمم للاستعلامات من اضافة وتعديل حسب اسم الجدول حيث يعمل ارراي ليست من اسماء الاعمدة الموجودة بالجدول عن طريق FillArrayList ثم يقوم بعمل تنفيذ للاستعلام بحسب رقم السجل الماخوذ من e.RowIndex الخاص بالغريد فيو اما "Emp_ID" فهو عامود الايدي 0 هي ترتيب العامود بالجدول للتاكد هل العامود به سجل يقوم بعمل تعليمة اب دايت اما اذا كان فارغ يقوم بعمل سجل جديد اي يعمل استعلام خاص بالاضافة اما true فهي تعبر عن عامود اي دي هل هو ترقيم تلقائي ام لا ليتم اضافته بالاستعلام ام لا الكود الاساسي هو لكيفية عمل استعلام اضافة او تعديل فقط باسم الجدول اذا اردت التعمق اكثر في صنع اكواد تصنع الاستعلامات و الاكواد تستطيع دراستها من سورس كود صانع الاكواد .


RE: كود حفظ - amonem - 01-08-19

(01-08-19, 01:53 AM)asemshahen5 كتب : الكود هو عبارة عن مصمم للاستعلامات من اضافة وتعديل حسب اسم الجدول حيث يعمل ارراي ليست من اسماء الاعمدة الموجودة بالجدول عن طريق FillArrayList ثم يقوم بعمل تنفيذ للاستعلام بحسب رقم السجل الماخوذ من e.RowIndex الخاص بالغريد فيو اما "Emp_ID" فهو عامود الايدي 0 هي ترتيب العامود بالجدول للتاكد هل العامود به سجل يقوم بعمل تعليمة اب دايت اما اذا كان فارغ يقوم بعمل سجل جديد اي يعمل استعلام خاص بالاضافة اما true فهي تعبر عن عامود اي دي هل هو ترقيم تلقائي ام لا ليتم اضافته بالاستعلام ام لا الكود الاساسي هو لكيفية عمل استعلام اضافة او تعديل فقط باسم الجدول اذا اردت التعمق اكثر في صنع اكواد تصنع الاستعلامات و الاكواد تستطيع دراستها من سورس كود صانع الاكواد .

شكرا لاهتمامك استتاذي الغالى
افهم من كلام حضرتك ان
 الكود ال اضعه داخل الكلاس خاص باضافه البيانات  عن طريق الداتا فيو ؟؟
ان كانت الاجابه ب نعم
عندي الشااشه المرفقه مكونه من 5 جدول 
الشاشه مقسمه لعدد  من التكست بوكس وكمبو بوكس وشيك بوكس وعدد 5 داتا جريدفيو  الاولى خاصه بعرض بيانات الموظفين وهي اسمها DGV_Employ
,والثاانيه والثالثه ولرابعه والخامسه سوف يتم من خلالهم اختيارات بعض الاختيارت حسب كل موظف ومد الحفظ مطلوب يتمحفظ بيانات الموظف الموجوده فى التكست بوكس ولكمبو بوكس ويقوم الكود بعد ذلك يحفظ البيانات التى تم اختيارها من 4 داتا فيو حسب احتياج الموظف
تنويه 
1- جدول  Employ  وهذا الجدول سيتم اضافه البيانات المدخله فى التكست بوكس الموجوده اعلى الشاشه
2- جدول Table_1 وهذا سيتم اضافه البيانات التى اختارها من الداتا فيو الخاصه للموظف
3- جدول Table_2 وهذا سيتم اضافه البيانات التى اختارها من الداتا فيو الخاصه للموظف
4- جدول Table_3 وهذا سيتم اضافه البيانات التى اختارها من الداتا فيو الخاصه للموظف
5- جدول Table_4 وهذا سيتم اضافه البيانات التى اختارها من الداتا فيو الخاصه للموظف


فهل هذا االكود يعمل هذا ؟؟
ارجو  التوضيح
ملحوظه 
الكود الذي قمن حضرتك مشكورا بعمله وعوهت اننى اضعه بالكلاس عمد وضعه ظهرر خطأ فى هذا الجزء
كود :
       private static ArrayList FillArrayList(string TableName)
       {
           DataTable DT = new DataTable();
           ArrayList ColumnNameXT = new ArrayList();
           ColumnNameXT.Clear();
           DT = DB.ExecSelect("Select * From " + TableName);
           for (int i = 0; i < DT.Columns.Count; i++)
           {
               ColumnNameXT.Add(DT.Columns[i].ColumnName);
           }
           return ColumnNameXT;
       }
نحديدا كلمة ArrayList
ارجو توضيح 
او لو من الممكن تطبيق على الملف عشان اقدر استوعبه وافهم
وجزاك الله كل خير
وزادك اللهم علما نافعا ورزقا طيبا واسعا وكتتب لك الفرودوس الاعلى


RE: كود حفظ - asemshahen5 - 01-08-19

الاضافة و التعديل لجداول الداتا فيو تتم من SaveColumnValueXT .

اما FillArrayList لا تستخدمه هو خاص بتحميل اسماء العمدة ليتم عمل الاستعلام اوتوماتيكيا لهذا لم تجد 

اي استعلام اضافة او تعديل لانه يولد عند حدث CellValueChanged في SaveColumnValueXT .


PHP كود :
private void DGV_Employ_CellValueChanged(object senderDataGridViewCellEventArgs e)
 
       {
 
           DB.SaveColumnValueXT(DGV_Employe.RowIndex"Employ" "Emp_ID",0,true);
 
       

هذا فقط مايستخدم بالفورم لا شيئ اخر .