تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تغير كود من vb.net ال سي شارب
#21
(10-07-19, 05:05 AM)amonem كتب :
(10-07-19, 03:46 AM)asemshahen5 كتب : هل جربت الكود عند الانتقال من خلية الاسم الى خلية اخرى في سجل جديد تتم عملية حفظ سجل جديد و عند التعديل في أي خلية محفوظة والانتقال الى خلية اخرى تتم عملية التعديل تماما .
عندي سؤال ممكن تشرح هذه النقطة : عند اختيار أكثر من بند للموظف بيتم اضافه سطر واحد فقط فهذا مستحيل لان الكود مكتوب في حدث dgvEmployee_CellValueChanged

ضع مثال مع وضع علامات في أسطر الكود الذي تريد تعديله .

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

انا اسف لو بتقل عليك 
ونا معاك فى كل كلامك لكن الفرق انى وضع الكود في مفتاح  خاص بالحفظ 
وليس فى حدث dgvEmployee_CellValueChanged
ولذلك يفضل استخدامحلقة فور

مفيش مشكلة لكن للعلم حلقة الفور تسبب بطء في عمل البرنامج أي لو في عندك 100 سجل أو أكثر .
عمل حفظ سجل جديد أو تعديل سجل موجود سيأخذ وقت طويل و اذا كان البرنامج على شبكة سيسبب المشاكل . 

PHP كود :
       private void button1_Click(object senderEventArgs e)
 
       {
 
           for (int i 0dgvEmployee.Rows.Count 1i++)
 
           {
 
               try
                
{
 
                   using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
                   {
 
                       String sqlstrdd "select * from Employee where EmployeeID='" dgvEmployee.Rows[i].Cells[0].Value "'";
 
                       System.Data.SqlClient.SqlDataAdapter dt1 = new System.Data.SqlClient.SqlDataAdapter(sqlstrddsqlCon);
 
                       DataTable dset1 = new DataTable();
 
                       dset1.Clear();
 
                       dt1.Fill(dset1);
 
                       //----------------------------------------
 
                       SqlCommand sqlCmd = new SqlCommand();
 
                       sqlCmd.CommandType CommandType.Text;
 
                       string SqlStr string.Empty;
 
                       if (dset1.Rows.Count == 0)//Insert
 
                       {
 
                           SqlStr "INSERT INTO Employee(Name,PositionID,Office,Age)VALUES (@Name,@PositionID,@Office,@Age)";
 
                           sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                           sqlCmd.Parameters.AddWithValue("@Name"dgvEmployee.Rows[i].Cells[1].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[1].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[2].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[2].Value.ToString()));
 
                           sqlCmd.Parameters.AddWithValue("@Office"dgvEmployee.Rows[i].Cells[3].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[3].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvEmployee.Rows[i].Cells[4].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[4].Value.ToString()));
 
                       }
 
                       else//update
 
                       {
 
                           SqlStr "UPDATE Employee SET Name = @Name,PositionID = @PositionID,Office = @Office,Age = @Age WHERE EmployeeID = @EmployeeID";
 
                           sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                           sqlCmd.Parameters.AddWithValue("@EmployeeID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[0].Value));
 
                           sqlCmd.Parameters.AddWithValue("@Name"dgvEmployee.Rows[i].Cells[1].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[1].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[2].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[2].Value.ToString()));
 
                           sqlCmd.Parameters.AddWithValue("@Office"dgvEmployee.Rows[i].Cells[3].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[3].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvEmployee.Rows[i].Cells[4].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[4].Value.ToString()));
 
                       }
 
                       sqlCon.Open();
 
                       sqlCmd.ExecuteNonQuery();
 
                       sqlCon.Close();
 
                   }
 
               }
 
               catch (Exception ex)
 
               {
 
                   MessageBox.Show(ex.Message.ToString());
 
               }
 
           }
 
           PopulateDataGridView();
 
           MessageBox.Show("Win............");
 
       



تفضل تذكر ما قلته لك كود الفور على الجدول يسبب بطء و على الشبكة سيسبب مشاكل .
الرد }}}
تم الشكر بواسطة:
#22
(10-07-19, 03:27 PM)asemshahen5 كتب :
(10-07-19, 05:05 AM)amonem كتب :
(10-07-19, 03:46 AM)asemshahen5 كتب : هل جربت الكود عند الانتقال من خلية الاسم الى خلية اخرى في سجل جديد تتم عملية حفظ سجل جديد و عند التعديل في أي خلية محفوظة والانتقال الى خلية اخرى تتم عملية التعديل تماما .
عندي سؤال ممكن تشرح هذه النقطة : عند اختيار أكثر من بند للموظف بيتم اضافه سطر واحد فقط فهذا مستحيل لان الكود مكتوب في حدث dgvEmployee_CellValueChanged

ضع مثال مع وضع علامات في أسطر الكود الذي تريد تعديله .

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

انا اسف لو بتقل عليك 
ونا معاك فى كل كلامك لكن الفرق انى وضع الكود في مفتاح  خاص بالحفظ 
وليس فى حدث dgvEmployee_CellValueChanged
ولذلك يفضل استخدامحلقة فور

مفيش مشكلة لكن للعلم حلقة الفور تسبب بطء في عمل البرنامج أي لو في عندك 100 سجل أو أكثر .
عمل حفظ سجل جديد أو تعديل سجل موجود سيأخذ وقت طويل و اذا كان البرنامج على شبكة سيسبب المشاكل . 

PHP كود :
       private void button1_Click(object senderEventArgs e)
 
       {
 
           for (int i 0dgvEmployee.Rows.Count 1i++)
 
           {
 
               try
                
{
 
                   using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
                   {
 
                       String sqlstrdd "select * from Employee where EmployeeID='" dgvEmployee.Rows[i].Cells[0].Value "'";
 
                       System.Data.SqlClient.SqlDataAdapter dt1 = new System.Data.SqlClient.SqlDataAdapter(sqlstrddsqlCon);
 
                       DataTable dset1 = new DataTable();
 
                       dset1.Clear();
 
                       dt1.Fill(dset1);
 
                       //----------------------------------------
 
                       SqlCommand sqlCmd = new SqlCommand();
 
                       sqlCmd.CommandType CommandType.Text;
 
                       string SqlStr string.Empty;
 
                       if (dset1.Rows.Count == 0)//Insert
 
                       {
 
                           SqlStr "INSERT INTO Employee(Name,PositionID,Office,Age)VALUES (@Name,@PositionID,@Office,@Age)";
 
                           sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                           sqlCmd.Parameters.AddWithValue("@Name"dgvEmployee.Rows[i].Cells[1].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[1].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[2].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[2].Value.ToString()));
 
                           sqlCmd.Parameters.AddWithValue("@Office"dgvEmployee.Rows[i].Cells[3].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[3].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvEmployee.Rows[i].Cells[4].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[4].Value.ToString()));
 
                       }
 
                       else//update
 
                       {
 
                           SqlStr "UPDATE Employee SET Name = @Name,PositionID = @PositionID,Office = @Office,Age = @Age WHERE EmployeeID = @EmployeeID";
 
                           sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                           sqlCmd.Parameters.AddWithValue("@EmployeeID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[0].Value));
 
                           sqlCmd.Parameters.AddWithValue("@Name"dgvEmployee.Rows[i].Cells[1].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[1].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvEmployee.Rows[i].Cells[2].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[2].Value.ToString()));
 
                           sqlCmd.Parameters.AddWithValue("@Office"dgvEmployee.Rows[i].Cells[3].Value == DBNull.Value "" dgvEmployee.Rows[i].Cells[3].Value.ToString());
 
                           sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvEmployee.Rows[i].Cells[4].Value == DBNull.Value "0" dgvEmployee.Rows[i].Cells[4].Value.ToString()));
 
                       }
 
                       sqlCon.Open();
 
                       sqlCmd.ExecuteNonQuery();
 
                       sqlCon.Close();
 
                   }
 
               }
 
               catch (Exception ex)
 
               {
 
                   MessageBox.Show(ex.Message.ToString());
 
               }
 
           }
 
           PopulateDataGridView();
 
           MessageBox.Show("Win............");
 
       



تفضل تذكر ما قلته لك كود الفور على الجدول يسبب بطء و على الشبكة سيسبب مشاكل .
اولا فعلا نا بشكرك على مجهودك
ثانيا لدي استفسار 
نظرا لكلامك
عندي فورم ادخل بيانات الموظفين
بعض التكست بوكس به لاسم وبيانات الاساسيه لكل موظف
عدد 6 داتا فيو كل داتا فيو متعلقه بجدول 
عند تضتفه موظف جديد بيتم ادخال بياناته الاساسيه ثم بعد ذلك بيتم اختير بعض البنود له من كل داتا فيو  ثم حفظ الموظف بحيث عند الحفظ يتم حفظ بينته الاساسيه المدخله وايضا يتم حفظ البنود التى تم اختيارها له من الداتا فيو 
اذا وضعت حدث الحفظ ال حضرتك مشكورا عملته فى حدث dgvEmployee_CellValueChanged 
هناك هتقبلنى مشكله وهي
فرضا ان المستخدم ادخل بيانات الموظف وتم ختيار بعض البنود له من الدات فيو  اذا كان الحفظ فى حدث dgvEmployee_CellValueChanged
سيتم حفظ البنود قبل حفظ البيانات الاساسيه للموظف وهنا ممكن يحصل مشكله لانه تم اضافه بنود لموظف ليس له بيانت سابقا 

فهل هناك فكره لديك افضل من ذلك
هذه صوره توضح لفورم الرئيسي الذي سيتم العمل عليه هتلاحظ انه يوجد tabPage فى كل tabPage  بها دااتا فيو بيتم اختيار بعض البنود على حسب كل موظف 
ودا سبب اننى لاارغب وض كود الحفظ فى حدذ الداتاا فيو حيث من الممكن اضافه بنود لموظف غير موجود اصلا وممكن تسبب اخطاء
فهل هناك غكره او اقتراح لديك يناسب ذلك
؟؟


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: asemshahen5
#23
بصراحة لم تكتمل الفكرة بعد لتكتمل ضع فورم تجريبية مع عدد من الداتا غريد مع سكربت الجداول في مثال مصغر بحيث يكون بعيد عن البرنامج الذي تعمل عليه و لكن بنفس الفكرة من تحميل و حفظ وضعه بالمرفقات للنظر في أمره و اختيار أفضل طريقة للحفظ انشاء الله .
الرد }}}
تم الشكر بواسطة:
#24
(10-07-19, 05:09 PM)asemshahen5 كتب : بصراحة لم تكتمل الفكرة بعد لتكتمل ضع فورم تجريبية مع عدد من الداتا غريد مع سكربت الجداول في مثال مصغر بحيث يكون بعيد عن البرنامج الذي تعمل عليه و لكن بنفس الفكرة من تحميل و حفظ وضعه بالمرفقات للنظر في أمره و اختيار أفضل طريقة للحفظ انشاء الله .

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


الملفات المرفقة
.rar   Employ.rar (الحجم : 90.38 ك ب / التحميلات : 18)
الرد }}}
تم الشكر بواسطة:
#25
(10-07-19, 05:09 PM)asemshahen5 كتب : بصراحة لم تكتمل الفكرة بعد لتكتمل ضع فورم تجريبية مع عدد من الداتا غريد مع سكربت الجداول في مثال مصغر بحيث يكون بعيد عن البرنامج الذي تعمل عليه و لكن بنفس الفكرة من تحميل و حفظ وضعه بالمرفقات للنظر في أمره و اختيار أفضل طريقة للحفظ انشاء الله .

مردتش عليا 
شفت شاشه الموظفين
ياترى ايه فكرتك عن طريقه الحفظ
الرد }}}
تم الشكر بواسطة: asemshahen5
#26
بصراحة كنت عم جهز كلاس خاصة بتعبئة الجدول مع الكومبو بوكس الخاصة به في موضوع آخر .
الكود الاول شغال تقريبا كونت فكرة عن طريقة الحفظ فقط بزر واحد للكل .

أولا غير خاصية Enable الخاص بالتاب كنترول الموجود الجداول فيها الى False و بعد حفظ ماتريد في رأس الصفحة غير القيمة الى True و شاهد الفيديو التالي و ادعو لي بالخير 

Update and Insert data in database from datagridview
الرد }}}
تم الشكر بواسطة:
#27
(10-07-19, 08:46 PM)asemshahen5 كتب : بصراحة كنت عم جهز كلاس خاصة بتعبئة الجدول مع الكومبو بوكس الخاصة به في موضوع آخر .
الكود الاول شغال تقريبا كونت فكرة عن طريقة الحفظ فقط بزر واحد للكل .

أولا غير خاصية Enable الخاص بالتاب كنترول الموجود الجداول فيها الى False و بعد حفظ ماتريد في رأس الصفحة غير القيمة الى True و شاهد الفيديو التالي و ادعو لي بالخير 

Update and Insert data in database from datagridview

السلام عليكم ورحمة الله وبركانه
كو لحفظ من الداتا فيو مباشر ال حضرنك مشكورا قمت بعمله
المفروض اتي اكرره لاكثر من داتا فيو  على حسب كل جدول
هل من الممكن عمل كلاس 
يعمل على مستوى المشروع كاملا لتخفيف الاكواد
بحيث كود الحفظ يكون بسيط
الرد }}}
تم الشكر بواسطة:
#28
هل شاهدت الفيديو الذي وضعت لك رابطه الكود جد بسيط و لا يحتاج الى وضعه بكلاس تقريبا ثلاثة اسطر و سطر منها مسج بوكس طبعا عد كود التري و الكتش :

عمليا سطر حفظ واحد :
PHP كود :
           SqlCommandBuilder cmdbl = new SqlCommandBuilder(adap);
 
           //SqlDataAdapter adap = new SqlDataAdapter("Select * From TableName", con);
 
           adap.Update(ds"TableName"); 

مشاهدة الفيديو الذي يشرح الكود وكيفية كتابته :

Update and Insert data in database from datagridview
الرد }}}
تم الشكر بواسطة:
#29
(13-07-19, 11:01 PM)asemshahen5 كتب : هل شاهدت الفيديو الذي وضعت لك رابطه الكود جد بسيط و لا يحتاج الى وضعه بكلاس تقريبا ثلاثة اسطر و سطر منها مسج بوكس طبعا عد كود التري و الكتش :

عمليا سطر حفظ واحد :
PHP كود :
           SqlCommandBuilder cmdbl = new SqlCommandBuilder(adap);
 
           //SqlDataAdapter adap = new SqlDataAdapter("Select * From TableName", con);
 
           adap.Update(ds"TableName"); 

مشاهدة الفيديو الذي يشرح الكود وكيفية كتابته :

Update and Insert data in database from datagridview

شاهدت هذا الفيديو وطبقته وكويس لكن مع وضع كمبو بوكس داخل االدتا فيو لا يعمل الكود
الرد }}}
تم الشكر بواسطة: asemshahen5 , asemshahen5
#30
وضعت لك تعديل على كلاس لتعبئة الكومبو بوكس بطريقتك جربه مع كود الحفظ و أظنه سينجح بإذن الله .

و هذا كود شبيه بما تريد .

معليش كثرة التعديل توصل دائما لكود افضل و انت تعرف ان المشروع ليس عندي لاختار له الكود الافضل او اعرف مايناسبه اكثر اتمنى ان تفهم ما اقصد .

مع تمنياتي لك بالتوفيق .
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] خطا في تغير شاشه البدايه Ahmed Rady 0 243 17-03-25, 05:47 AM
آخر رد: Ahmed Rady
  [سؤال] مساعدة في سي شارب سيد أحمد 11 1,002 06-07-24, 01:50 PM
آخر رد: سيد أحمد
  مساعدة فى سى شارب ضرورى جدا said-12 2 794 09-06-24, 09:06 PM
آخر رد: Kamil
  مساعدة فى سى شارب said-12 3 744 14-02-24, 12:17 AM
آخر رد: Taha Okla
Star [VB.NET] السلام عليكم.. ممكن مساعدتي في تغير كود منWebBrowser الى webView2 Coder_iraqii 3 860 16-12-23, 03:48 PM
آخر رد: Kamil
  [سؤال] السلام عليكم بدون زحمة عندي نظام ارشفة مشتغلة بلغة سي شارب وقاعدة بيانات سكوال سيرفر مرتضى 1 1,141 13-05-23, 10:36 PM
آخر رد: عبدالله الدوسري
  كيفية ضبط مقاس دقة الشاشة للمشروع بلغة السي شارب صبري بامرحول 1 1,667 01-05-22, 03:09 AM
آخر رد: سعود
  تحويل كود سي شارب الي فاكشن داخل سيكول سيرفر amonem 0 1,236 10-03-22, 11:32 AM
آخر رد: amonem
  [سؤال] هل هناك شخص متمكن من السي شارب والmysql ؟ Saso 1 1,622 03-07-21, 02:32 PM
آخر رد: asemshahen5
  [C#.NET] ربط قاعدة بيانات الأكسس بسى شارب محمود احمد سعد 12 4,298 17-04-21, 06:49 AM
آخر رد: amiria

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


يقوم بقرائة الموضوع: