منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طلب كود بخصوص الداتا قردفيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسبب ان البرنامج عندي لا يستطيع التعامل حاليا مع سيرفرsql
ما تريد من زر (ادخال البيانات) ان يفعل وما دور textbox
زر (اظافة صف جديد) من يحفظ البيانات يعني اين الادوات التي يدخل عن طريقها البيانات مثل textbox وغيرها

مشروعك ليس فيه سوى datagrid وcombox واحد وtextbox واحد
(29-04-17, 04:59 PM)rmlq كتب : [ -> ]بسبب ان البرنامج عندي لا يستطيع التعامل حاليا مع سيرفرsql
ما تريد من زر (ادخال البيانات) ان يفعل وما دور textbox
زر (اظافة صف جديد) من يحفظ البيانات يعني اين الادوات التي يدخل عن طريقها البيانات مثل textbox وغيرها

مشروعك ليس فيه سوى datagrid وcombox واحد وtextbox واحد

نعم معك حق فالمشروع مجرد عرض لمشكلة واجهتني في برنامج اخر فيه فورم به داتاقرد فيو يتم عن طريقها حفظ البيانات المطلوبة الى الداتا بيز عن طريق
1- الضغط على الزر اظافة صف جديد 
2- الغط على زر ادخال البيانات ليقوم بعملية INSERT   للـ  وtextbox لداتا قرددفيو
الخلاصة اني اريد ان اجبر المستخدم  لادخال البيانات من خلال هاذين الزرين 
واما بخصوص الحفظ فيكون من خلال الحدث الخروج من السطر 
ارجو ان تكون الفكرة واضحة اخي وشكرا لتجاوبك معي
كود :
' التقاط حدث الخروج من السطر الحالي للداتاجريد فيو
   Private Sub DataGridView1_RowValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.RowValidating
       ' عدد السطور التي تمت زيادتها أو تحديثها
       Dim n As Integer = 0
       ' الحصول على السطر الحالي
       Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
       ' تجاهل السطر إذا لم تتم عليه أية عملية
       If row.Tag Is Nothing Then Return
       ' التأكد من اختيار مجموعة بسبب طريقة عمل العمود كومبوبوكس
       If row.Cells(3).Value = Nothing Then
           ' إعلام المستخدم
           MsgBox("المرجو تحديد المجموعة التي ينتمي إليها المستخدم")
           ' البقاء على نفس السطر حتى تصحيح الخطأ
           e.Cancel = True
           ' خروج
           Return
       End If
       ' فتح قناة الاتصال بقاعدة البيانات
       SqlConnection1.Open()
       If row.Tag = RowAdded Then ' السطر جديد يجب زيادته على الجدول على قاعدة البيانات
           ' إنشاء و تهيئة كائن تنفيذ جملة سكل
           Dim cmd As New SqlCommand("INSERT INTO UserInfo ([Login], [Password], GroupID) VALUES(@Login, @Password, @GroupID)", SqlConnection1)
           ' زيادة و تهيئة الوسائط بأسماء الحقول و قيمها من السطر الحالي على الداتاجريدفيو
           cmd.Parameters.Add("@Login", SqlDbType.NVarChar, 30, "Login").Value = row.Cells(1).Value
           cmd.Parameters.Add("@Password", SqlDbType.NVarChar, 30, "Password").Value = row.Cells(2).Value
           cmd.Parameters.Add("@GroupID", SqlDbType.BigInt, 1, "GroupID").Value = row.Cells(3).Value

           ' تنفيذ جملة سكل
           n = cmd.ExecuteNonQuery()
           ' الحصول على مرجع التسجيل
           cmd.CommandText = "SELECT @@IDENTITY FROM UserInfo"
           row.Cells(0).Value = cmd.ExecuteScalar()
       ElseIf row.Tag = RowEdited Then ' السطر موجود و لكن تم تحديته
           ' إنشاء و تهيئة كائن تنفيذ جملة سكل
           Dim cmd As New SqlCommand("UPDATE UserInfo SET [Login] = @Login, [Password] = @Password, GroupID = @GroupID WHERE ID = @ID", SqlConnection1)
           ' زيادة و تهيئة الوسائط بأسماء الحقول و قيمها من السطر الحالي على الداتاجريدفيو
           cmd.Parameters.Add("@Login", SqlDbType.NVarChar, 30, "Login").Value = row.Cells(1).Value
           cmd.Parameters.Add("@Password", SqlDbType.NVarChar, 30, "Password").Value = row.Cells(2).Value
           cmd.Parameters.Add("@GroupID", SqlDbType.BigInt, 1, "GroupID").Value = row.Cells(3).Value
           ' مرجع التسجيل الذي سيتم تحديته
           cmd.Parameters.Add("@ID", SqlDbType.BigInt, 1, "ID").Value = row.Cells(0).Value
           ' تنفيذ جملة سكل
           n = cmd.ExecuteNonQuery()
       End If
       ' غلق قناة الاتصال
       SqlConnection1.Close()
       ' تعليم السطر أنه لم يتم تحديثه أو زيادته
       row.Tag = Nothing
       ' التحقق من نجاح العملية
       If n = 0 Then MsgBox("لم يتم تنفيذ أي عملية!", MsgBoxStyle.Critical, "خطأ")
   End Sub
اذا كان ادخال البيانات من نفس خلايا الداجريد فالتعديل يقوم بذلك
لانه لا يوجد ادوات اخرى يدخل المستخدم من خلالها login وpassword

مسالة زر فقط غير مفهومه

هل عرفت كيف تستخدم التعديل
تقوم باضافة اسطر وتعديل البيانات الموجودة سابقا
وفي النهاية تضغط تحديث فيقوم باضافة ما اضفته وتعديل ما قمت بتعديل وحذف ما حذفته كل هذا سيتم تطبيقه على البيانات في قاعدة البيانات
(29-04-17, 05:44 PM)rmlq كتب : [ -> ]اذا كان ادخال البيانات من نفس خلايا الداجريد فالتعديل يقوم بذلك
لانه لا يوجد ادوات اخرى يدخل المستخدم من خلالها login وpassword

مسالة زر فقط غير مفهومه

هل عرفت كيف تستخدم التعديل
تقوم باضافة اسطر وتعديل البيانات الموجودة سابقا
وفي النهاية تضغط تحديث فيقوم باضافة ما اضفته وتعديل ما قمت بتعديل وحذف ما حذفته كل هذا سيتم تطبيقه على البيانات في قاعدة البيانات
 
شكرا اخي rmlg على اهتمامك وسامحني على تعبك معي 
ارجو ان تحمل هذا المرفق من الرابط لتعرف كيف يتم الحفظ والتعديل والحذف من خلال الداتا قرد فيو فقط من دون زر تحديث على قاعدة البيانات ومشكلتي وطلبي هو ان اجبر المستخدم على ادخال البيانات لداتا قردفيو من خلال 
1- زر اظافة صف جديد ADD ROW
2- وادخال البيانات لداتا قرد فيو يتم عن طريق زر ادخال البيانات من مجموعة تكست بوكس مثلا عن طريق INSERT
هذا كل ما اريده بالتحديد ارجو ان تكون الصورة واضحة
الرابط http://arabteam2000-forum.com/applicatio...p?id=96221
السلام عليكم و رحمة الله و بركاته
لم افهم تحديداً المطلوب , و على كل حال
اذا كنت تريد اضافة سطر جديد لـ DataGridView  دون ان يحتوي بيانات عن طريق زر
و بعدها تريد ملئ محتويات هذا الصف فاعتقد مثل هذا الكود ينفعك

PHP كود :
       Dim rowId As Integer DataGridView1.Rows.Add()
 
       Dim Dgvrow As DataGridViewRow DataGridView1.Rows(rowId)
 
       'اسناد قيم للخلايا
        Dgvrow.Cells("ID").Value = rowId + 1
        Dgvrow.Cells("Login").Value = ComboBox1.Text
        Dgvrow.Cells("Password").Value = Format(Val(TextBox1.Text), "0.000")
        Dgvrow.Cells("GroupID").Value = ComboBox1.SelectedValue 
طريقة ملئ DataGridview لديك عقيمة و ملتفة 
لما لم تستخدم الاسلوب الاعتيادي في الملئ و بالتالي يكون من السهل التعامل مع القريد و القاعدة.

تحياتي
[attachment=14104 كتب :ابو ليلى pid='98470' dateline='1493571920']السلام عليكم و رحمة الله و بركاته
لم افهم تحديداً المطلوب , و على كل حال
اذا كنت تريد اضافة سطر جديد لـ DataGridView  دون ان يحتوي بيانات عن طريق زر
و بعدها تريد ملئ محتويات هذا الصف فاعتقد مثل هذا الكود ينفعك

PHP كود :
       Dim rowId As Integer DataGridView1.Rows.Add()
 
       Dim Dgvrow As DataGridViewRow DataGridView1.Rows(rowId)
 
       'اسناد قيم للخلايا
        Dgvrow.Cells("ID").Value = rowId + 1
        Dgvrow.Cells("Login").Value = ComboBox1.Text
        Dgvrow.Cells("Password").Value = Format(Val(TextBox1.Text), "0.000")
        Dgvrow.Cells("GroupID").Value = ComboBox1.SelectedValue 
طريقة ملئ DataGridview لديك عقيمة و ملتفة 
لما لم تستخدم الاسلوب الاعتيادي في الملئ و بالتالي يكون من السهل التعامل مع القريد و القاعدة.

تحياتي

شكرا اخي ابو ليلى والشكر موصول لكل من حاول مساعدتي
وأعتذر منكم مرة اخر على عدم مقدرتي على ايصال مطلوبي اليكم 
ولاكن وللاه الحمد والمنة وجدت ما ابحث عنه وما كنت اعنيه و هو ان اجبر المستخدم على عدم التعامل مع DataGridview مباشرة وان يتم الادخال والتعديل والحذف عن طريق الازرار و التكست بوكس شكرا لكم جميعا و لهذا الموقع الغالي
مرفق المثال للفائدة
الصفحات : 1 2