تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تغير كود من vb.net ال سي شارب
#11
السلام عليكم ورحمة الله وبركاته
اخي الكريم راجعت مشروعك واتعبني قليلا لذلك ارتأيت ان اعمل مثال جدبد بنفس الحقول
وتسميات مختلفة قليلا المهم شي واحد مختلف وهو ان ازرار الحفظ والتعديل والحذف كل لوحده
وعند الاضافة نضيف صف فارغ ونملأه 
ومن ناحية الكومبوبوكس في الداتاغرايد ملأته من collection الموجود في Edit Columns للداتاغرايد
مرفق قاعدة بيانات SQL ... غير السيرفر الى الذي عندك
ارجو ان يكون طلبك قد تحقق والفضل لله
دمت بخير


الملفات المرفقة
.rar   TestAmonem.rar (الحجم : 1.72 م ب / التحميلات : 14)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: asemshahen5
#12
https://www.youtube.com/watch?v=cQQy_IfFddg&t=334s
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#13
(09-07-19, 10:09 AM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
اخي الكريم راجعت مشروعك واتعبني قليلا لذلك ارتأيت ان اعمل مثال جدبد بنفس الحقول
وتسميات مختلفة قليلا المهم شي واحد مختلف وهو ان ازرار الحفظ والتعديل والحذف كل لوحده
وعند الاضافة نضيف صف فارغ ونملأه 
ومن ناحية الكومبوبوكس في الداتاغرايد ملأته من collection الموجود في Edit Columns للداتاغرايد
مرفق قاعدة بيانات SQL ... غير السيرفر الى الذي عندك
ارجو ان يكون طلبك قد تحقق والفضل لله
دمت بخير

اولا انا بشكرك جدا على مجهودك واسف لو كنت تسببت فى تعبك 
ولكن للاسف 
ال انا محتاجه خلاف هذا المثال تماما
بالنسبه لطلبي لا يوجد ااى تكست بوكس والاضافه والتعديل والحذف تتم من خلال الداتا فيو مباشرا دون الاحتياج لتكست بوكس  نظرا لان شاشه االعمل الفعليه تضم عدد 6 داتا  فيو  لعدة جداول مختلفه بيتم اختيار بنود معينه تخص الموظف من كل دتا فيو ثم عند الضغط على حفظ يتم حفظ كل البيانات الموجوده فى كل داتا ولذلك طلبت كود حفظ  وتعديل  وحذف عن طريق الداتافيو مباشرا بحيث انى ااكرر هذا الكود حسب عدد الداتا فيو بعد تعديله حسب كل جدول ووضع  اكواد الحفظ عي مفتاح حفظ البيانات 
اتمنى تكون الفكره وضحت
ملحوظه حضرتك ارسلت لى رابط فيديو شبيه تماما بطلبي الخلاف الوحيد بين طلبي وشرح الفيديو هو صاحب الفيديو استخدم اجراء مخزن داخل السيكول سيرفر
 ال انا عيزو الغاء لاجراء المخذن واضافه لاجراء المخزن داخل كود الحفظ بحيث يتم الحفظ بدون استخدم اجراء مخزن 
ولك منى تحيااتى
الرد }}}
تم الشكر بواسطة:
#14
فقط ضع مكان الإجراء المخزن استعلام الاضافة او التعديل أي تغيير


PHP كود :
cmd.CommandText "your sql commend";
cmd.CommandType CommandType.Text
       

فقط لا غيير .
الرد }}}
تم الشكر بواسطة:
#15
(09-07-19, 03:45 PM)asemshahen5 كتب : فقط ضع مكان الإجراء المخزن استعلام الاضافة او التعديل أي تغيير

       cmd.CommandText = "your sql commend";
       cmd.CommandType = CommandType.Text;

فقط لا غيير .
شكرا لردك استاذي الغالى
خبرتى ضعيفه لو من الممكن
كود الاضافه هو


إقتباس :
private void dgvEmployee_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvEmployee.CurrentRow != null)
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    sqlCon.Open();
                    DataGridViewRow dgvRow = dgvEmployee.CurrentRow;
                    SqlCommand sqlCmd = new SqlCommand("EmployeeAddOrEdit", sqlCon);
                    sqlCmd.CommandType = CommandType.StoredProcedure;
                    if (dgvRow.Cells["txtEmployeeID"].Value == DBNull.Value)//Insert
                        sqlCmd.Parameters.AddWithValue("@EmployeeID", 0);
                    else//update
                        sqlCmd.Parameters.AddWithValue("@EmployeeID", Convert.ToInt32(dgvRow.Cells["txtEmployeeID"].Value));
                    sqlCmd.Parameters.AddWithValue("@Name", dgvRow.Cells["txtName"].Value == DBNull.Value ? "" : dgvRow.Cells["txtName"].Value.ToString());
                    sqlCmd.Parameters.AddWithValue("@PositionID", Convert.ToInt32(dgvRow.Cells["cbxPosition"].Value == DBNull.Value ? "0" : dgvRow.Cells["cbxPosition"].Value.ToString()));
                    sqlCmd.Parameters.AddWithValue("@Office", dgvRow.Cells["txtOffice"].Value == DBNull.Value ? "" : dgvRow.Cells["txtOffice"].Value.ToString());
                    sqlCmd.Parameters.AddWithValue("@Age", Convert.ToInt32(dgvRow.Cells["txtAge"].Value == DBNull.Value ? "0" : dgvRow.Cells["txtAge"].Value.ToString()));
                    sqlCmd.ExecuteNonQuery();
                    PopulateDataGridView();
                }
            }
        }

والاجراء المخزن هو 
إقتباس :
CREATE PROC EmployeeAddOrEdit
@EmployeeID int,
@Name varchar(100),
@PositionID int,
@Office varchar(50),
@Age int
AS
IF @EmployeeID = 0
INSERT INTO Employee(Name,PositionID,Office,Age)
VALUES (@Name,@PositionID,@Office,@Age)
ELSE
UPDATE  Employee
SET
Name = @Name,
PositionID = @PositionID,
Office = @Office,
Age = @Age
WHERE EmployeeID = @EmployeeID

اتمنى ااضافه لاجراء المخزن ضمن الكود بحيث يكون االكود يعمل بدون اجراء مخزن
وجزك الله كل خير
دا رابط فيديو واخد منه الكود

https://www.youtube.com/watch?v=cQQy_IfFddg

يعني اريد نفس هذا الكود الموجود بالشرح ولكن بدون استخدام اجراءات مخزنه
 اتمنى تكون الفكره وصلت
الرد }}}
تم الشكر بواسطة:
#16
تفضل هذا الكود بعد التعديلات التي طلبتها :

PHP كود :
       private void dgvEmployee_CellValueChanged(object senderDataGridViewCellEventArgs e)
 
       {
 
           if (dgvEmployee.CurrentRow != null)
 
           {
 
               using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
               {
 
                   DataGridViewRow dgvRow dgvEmployee.CurrentRow;
 
                   SqlCommand sqlCmd = new SqlCommand();
 
                   sqlCmd.CommandType CommandType.Text;
 
                   string SqlStr string.Empty;
 
                   if (dgvRow.Cells[0].Value == DBNull.Value)//Insert
 
                   {
 
                       SqlStr "INSERT INTO Employee(Name,PositionID,Office,Age)VALUES (@Name,@PositionID,@Office,@Age)";
 
                       sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                   }
 
                   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(dgvRow.Cells[0].Value));
 
                   }
 
                   sqlCmd.Parameters.AddWithValue("@Name"dgvRow.Cells[1].Value == DBNull.Value "" dgvRow.Cells[1].Value.ToString());
 
                   sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvRow.Cells[2].Value == DBNull.Value "0" dgvRow.Cells[2].Value.ToString()));
 
                   sqlCmd.Parameters.AddWithValue("@Office"dgvRow.Cells[3].Value == DBNull.Value "" dgvRow.Cells[3].Value.ToString());
 
                   sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvRow.Cells[4].Value == DBNull.Value "0" dgvRow.Cells[4].Value.ToString()));
 
                   sqlCon.Open();
 
                   sqlCmd.ExecuteNonQuery();
 
                   sqlCon.Close();
 
                   PopulateDataGridView();
 
               }

 
           }
 
       }
 
       private void PopulateDataGridView() 
 
       {
 
           using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
           {
 
               SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee"sqlCon);
 
               DataTable dt = new DataTable();
 
               sqlAdp.Fill(dt);
 
               dgvEmployee.DataSource dt;
 
           }
 
       }

 
       private void Form1_Load(object senderEventArgs e)
 
       {
 
           using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
           {
 
               SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee"sqlCon);
 
               DataTable dt = new DataTable();
 
               sqlAdp.Fill(dt);
 
               dgvEmployee.DataSource dt;
 
           }

 
       
الرد }}}
تم الشكر بواسطة:
#17
(09-07-19, 09:50 PM)asemshahen5 كتب : تفضل هذا الكود بعد التعديلات التي طلبتها :

PHP كود :
       private void dgvEmployee_CellValueChanged(object senderDataGridViewCellEventArgs e)
 
       {
 
           if (dgvEmployee.CurrentRow != null)
 
           {
 
               using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
               {
 
                   DataGridViewRow dgvRow dgvEmployee.CurrentRow;
 
                   SqlCommand sqlCmd = new SqlCommand();
 
                   sqlCmd.CommandType CommandType.Text;
 
                   string SqlStr string.Empty;
 
                   if (dgvRow.Cells[0].Value == DBNull.Value)//Insert
 
                   {
 
                       SqlStr "INSERT INTO Employee(Name,PositionID,Office,Age)VALUES (@Name,@PositionID,@Office,@Age)";
 
                       sqlCmd = new SqlCommand(SqlStrsqlCon);
 
                   }
 
                   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(dgvRow.Cells[0].Value));
 
                   }
 
                   sqlCmd.Parameters.AddWithValue("@Name"dgvRow.Cells[1].Value == DBNull.Value "" dgvRow.Cells[1].Value.ToString());
 
                   sqlCmd.Parameters.AddWithValue("@PositionID"Convert.ToInt32(dgvRow.Cells[2].Value == DBNull.Value "0" dgvRow.Cells[2].Value.ToString()));
 
                   sqlCmd.Parameters.AddWithValue("@Office"dgvRow.Cells[3].Value == DBNull.Value "" dgvRow.Cells[3].Value.ToString());
 
                   sqlCmd.Parameters.AddWithValue("@Age"Convert.ToInt32(dgvRow.Cells[4].Value == DBNull.Value "0" dgvRow.Cells[4].Value.ToString()));
 
                   sqlCon.Open();
 
                   sqlCmd.ExecuteNonQuery();
 
                   sqlCon.Close();
 
                   PopulateDataGridView();
 
               }

 
           }
 
       }
 
       private void PopulateDataGridView() 
 
       {
 
           using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
           {
 
               SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee"sqlCon);
 
               DataTable dt = new DataTable();
 
               sqlAdp.Fill(dt);
 
               dgvEmployee.DataSource dt;
 
           }
 
       }

 
       private void Form1_Load(object senderEventArgs e)
 
       {
 
           using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
 
           {
 
               SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee"sqlCon);
 
               DataTable dt = new DataTable();
 
               sqlAdp.Fill(dt);
 
               dgvEmployee.DataSource dt;
 
           }

 
       

الف شكر استاذي الغالى هو دا المطلوب بنسبه 90%
محتاج تعديل بسيط عليه ويبقى 100%
كود الحفظ هيكون داخل مفتاح عند الضغط عليه يتم الحفظ
وهنا فيه مشكله وجهتنى وهي عند اختيار اكثر من بند للموظف بيتم اضافه سطر واحد فقط 
وايضا اذا تم تعديل بند موجود واضافه بند جديد عند الحفظ بيتم حفظ الجديد ولا يعدل التعديل ال تم

ولذلك
ممكن تعمل حلقه فور بحيث عند الضغط على حفظ يعمل لاتى
1- اي تعديلات تمت على السجلات المضافه سابقا يتم تعديلها
2- اذا كان تم اضافه مجموعه بنود جديده يتم حفظها ايضا
 اتمنى تكون الغكره وصلت
وزادك الله علما نافعا
وجعله في ميزان حسناتك اللهم امين
الرد }}}
تم الشكر بواسطة: asemshahen5
#18
هل جربت الكود عند الانتقال من خلية الاسم الى خلية اخرى في سجل جديد تتم عملية حفظ سجل جديد و عند التعديل في أي خلية محفوظة والانتقال الى خلية اخرى تتم عملية التعديل تماما .
عندي سؤال ممكن تشرح هذه النقطة : عند اختيار أكثر من بند للموظف بيتم اضافه سطر واحد فقط فهذا مستحيل لان الكود مكتوب في حدث dgvEmployee_CellValueChanged

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

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

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

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

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

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

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

هل هناك حل وعمل حلقهفور ليتم الحفظ عن طريق مفتاح خاص للحفظ والتعديل بدلا من الحدث dgvEmployee_CellValueChanged
؟؟
ام الموضوع صعب استاذي الفاضل
واسف لو بتقل عليك
الرد }}}
تم الشكر بواسطة:


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

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


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