تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تعديل على مشروع داتا قريد
#11
هل جربت الكود قبل وضعه يا أخي الكريم 
الكود ينقصه تعريف المتغير
الرد }}}
تم الشكر بواسطة:
#12
(03-03-16, 09:58 AM)adel27 كتب : هل جربت الكود قبل وضعه يا أخي الكريم 
الكود ينقصه تعريف المتغير

بالتأكيد اخي الكريم الكود يعمل دون مشاكل
صحيح لقد نسيت ان اضع المتغيرات التي تم تعريفها
عموما هذا المثال كاملا بعد التعديل


الملفات المرفقة
.rar   tstdata.rar (الحجم : 187.84 ك ب / التحميلات : 39)
الرد }}}
تم الشكر بواسطة:
#13
   
الرد }}}
تم الشكر بواسطة:
#14
الحقل الخاص بالتحقق ضعه من نوع bit
الرد }}}
تم الشكر بواسطة:
#15
يا عسـل المثال لا يعمل بالشكل الصحيح 
الكود عدلت فيه الداله أتضح معي طريقتين 
الأولى عند الضغط على حفظ يحدد الجميع 
وعند أزالة التحديد ثم الضغط على حفظ يزيل التحديد عن الكل 

كود :
Imports System.Data.SqlClient
Imports System.Data
Public Class Form1
   Dim da As New SqlDataAdapter
   Dim dtt As New DataTable
   Dim com As New SqlConnection("Data Source=.;Initial Catalog=COP_DAT;Integrated Security=True")
   Dim cmd As New SqlCommand
   Dim b As Integer
   

   ' الجدول عبـاره عن حقلين الحقل الأول الأسم الحقل الثاني التحقق
   ' bitنوع الحقل الأول تكست نوع الحقل الثاني    

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       dtt.Clear()
       da = New SqlDataAdapter("SELECT * FROM hala ", com)
       da.Fill(dtt)
       DataGridView1.DataSource = dtt

       For i = 0 To DataGridView1.Rows.Count - 1
           With DataGridView1.Rows(i)
               Dim MyCheck As Boolean
               If MyCheck = True Then
                   .Cells(6).Value.ToString()
                   '.Cells(0).ReadOnly = True
                   ''.Cellds(1).ReadOnly = True
                   '.Cells(2).ReadOnly = True
                   .DefaultCellStyle.BackColor = Color.LightGray

               Else
                   .Cells(0).ReadOnly = False
                   .Cells(1).ReadOnly = False
                   .Cells(2).ReadOnly = False
                   .DefaultCellStyle.BackColor = Nothing
               End If
           End With
       Next
       ' في حدث اللود إذا ملئت الداتا قريد يتأكد من الجدول عن الحقول التي تم تحديدها وينزلها مضلله
   End Sub
   'التأكد من وجود السجل في قاعدة البيانات
   Public Function CheckData(ByVal id As Integer)


       Dim cm As New SqlCommand("Select tk from hala where tk=@tk", com)
       cm.Parameters.AddWithValue("@tk", DataGridView1.Rows(0).Cells(6).Value)

       com.Open()
       Dim dr As SqlDataReader = cm.ExecuteReader()
       If dr.HasRows = True Then 'اذا كان السجل موجود يرجع 1
           b = 1
           com.Close()
           Return b
       Else
           b = 0
           com.Close()
           Return b
       End If

   End Function

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       For i As Integer = 0 To DataGridView1.Rows.Count - 1

           If CheckData(CBool(DataGridView1.Rows(i).Cells(6).Value)) = 1 Then
               Dim cm As New SqlCommand("Update hala set tk=@tk", com)
               cm.Parameters.AddWithValue("@tk", CBool(DataGridView1.Rows(i).Cells(6).Value.ToString))
               com.Open()
               cm.ExecuteNonQuery()
               com.Close()

           End If
       Next
       MsgBox("تم التعديل")
       Form1_Load(sender, e)

   End Sub
End Class


ألصق الكود في المثال اللي موجود عندك وستجد أنه لا يعمل 

الآن الجدول لدي في قاعدة البيانات كالتالي ID*Name*Num_Pr*Ght_pr*Agra*datego*tk
ما يهمني هو الحقل (tk( يظهر في الداتا قريد فيو بعلامة تشك على طول بدون أضافة تشك 
أحنا أقتربنا من الحل أن شاء الله  وأشكرك على تعاونك
الرد }}}
تم الشكر بواسطة: Adrees
#16
يا أخي عادل هنا تضع رتبة حقل ال ID وليس رتبة حقل ال tk

PHP كود :
If CheckData(CInt(DataGridView1.Rows(i).Cells(0).Value)) = 
الرد }}}
تم الشكر بواسطة:
#17
(04-03-16, 08:35 AM)khodor1985 كتب : السلام عليكم إخواني الأعزاء ورحمة الله وبركاته
إسمحوا لي أن أضع هذه الفكرة أيضا إلى جانب أخي الكبير إدريس،
يمكن التحقق من وجود البيانات في قاغدة البيانات من خلال الطرق التالية :

الطريقة الأولى :
أولا نقوم بالإعلان عن متغير لنرصد من خلاله عدد الصوف الموجودة في قاعدة البيانات بحيث يمكن أن ننفذ هذه العملية من خلال شرط أو معيارز
ولكن كيف سوف تتم هذه العملية من البعد التطبيقي؟
ببساطة من خلال استدعاء البيانات، بمعنى آخر أنا شاب إسمي عادل أريد إضافة بيانات جديدة إلى قاعدة البيانات قمت باستدعاء البيانات والتحقق منها بناء للشرط وهو القيمة المفتاح المضافة فإذا كانت موجودة سوف ينتقل إلى إجراء آخر وهو التحديث مثلا أو أن لا يقوم بأي إجراء (هذا راجع للمبرمج).
هنا يمكن استخدام الأداة المعروفة والمشهورة التي تستخدم مع الكائن Command ، من خلال هذه الأداة نستطيع أن نتعامل مع العمليات الحسابية والعددية والتجميعية وتمكننا من رصد عدد الصفوف في جدول في قاعدة البيانات، إليك المثال التالي:
لنفترض أننا قمنا بإنشاء جدول بعنوان Person ويتضمن هذا الجدول الحقول التالية :
ID
Fname
Lname
Address
ثم أردنا إضافة بيانات جديدة إلى الجدول دون الوقوع في تكرار البيانات، فسوف نستخدم هنا جملة Select الإستعلامية مع Criteria لاستدعاء البيانات فإذا تطابق الشرط مع قيمة موجودة في قاعدة البيانات فوسوف تقوم جملة Select بإرجاع صف واحد للمستخدم، ومن خلال الأداة ExecuteScalar يمكن معرفة عدد الصفوف
فإذا كان عدد الصفوف التي أرجعها الأداة ExecuteScalar أكبر من القيمة 0 إذا القيمة موجودة مسبقا في قاعدة البيانات وبالتالي سوف يترتب على هذا الأمر الإجراء التالي إما التحديث أو إجراء آخر.
PHP كود :
SELECT FROM Person Where Fname=@Fname 


PHP كود :
IF CMD.ExecuteScalar 0 Then
Do Something
Else
Do 
Something
End 
If 

إليك هذا المثال أيض بالصور :





ماذا فعلنا هنا :
أولا قمنا بتحميل البيانات إلى DataGrid وهذا هو الكود :
PHP كود :
con.Open()

 
       Dim strSelect As String "SELECT * FROM Person"
 
       cmd = New OleDbCommand(strSelectcon)
 
       da = New OleDbDataAdapter(cmd)
 
       ds = New DataSet
        ds
.Clear()
 
       da.Fill(ds"Person")

 
       DGVData.DataSource ds.Tables("Person")

 
     

        con
.Close() 

ثم أضفنا الكود التالي إلى الزر Check للتحقق من وجود البيانات في الجدول :
PHP كود :
Try
 
           con.Open()

 
           Dim strSelect As String "SELECT * FROM Person Where Fname=@Fname"
 
           cmd = New OleDbCommand(strSelectcon)
 
           cmd.Parameters.Add("@Fnam"OleDbType.VarWChar).Value txtFname.Text

            If cmd
.ExecuteScalar 0 Then
                MsgBox
("Record exists")
 
           Else
                MsgBox
("Record not exists")
 
           End If

 
           con.Close()

 
       Catch ex As Exception

        End 
Try 
لقد انتهينا من الطريقة الأولى
ملاحظة الصورة الصورة الأخيرة رفعت بالخطأ

بارك الله فيك استاذنا القدير خضر 
يعطيك العافية على هذا الشرح الجميل.
الرد }}}
تم الشكر بواسطة: khodor1985 , khodor1985
#18
السلام عليكم ورحمة الله وبركاتة
أخي العزيز انا عملت لك مثال على حسب فهمي لطلبك لو المثال لا يلبي المطلوب لو ممكن توضح لي وللأخوة الأعضاء أكثر عن طلك
* مرفق صورة لمكونات للجدول المستخدم


الملفات المرفقة
.rar   Datagrid.rar (الحجم : 213.75 ك ب / التحميلات : 44)
Email : mrma11581@gmail.com
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , khodor1985 , khodor1985 , Adrees
#19
شــاكر ومقدر أهتمامكم 
أستأذ خضر لا أعرف كيف أشكرك على هذه المعلومات المفيده والله يكتب لك الأجر ياغالي 

بالنسبه لموضوعي اللي ما فهمه سبق وأن الأستاذ خضر عمل لي مثال والمثال هذا نفس الفكره اللي أحتاجها بالضبط ولكن أحتاج إلى تطبيقه 
على سكيـول سيرفر 


.rar   khodor1985 - DataGridCheckBox.rar (الحجم : 155.67 ك ب / التحميلات : 27)

وهذه صوره للجدول 


.zip   صورة الجدول.zip (الحجم : 537.45 ك ب / التحميلات : 28)
الرد }}}
تم الشكر بواسطة:
#20
ههههههههههههه أعتذر والله سامحني تعبتك معاي 

ولكن هذا الحقل المراد فيه حفظ قيمة التشك بكس هل تم التحديد أم لا وحفظ التحديد

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

أنا وضعت الحقل bit  فظهر معي في الداتا قريد فيو عمود datago مثل علامة التشك 

================================================
هنـاك زر أسفل الداتا قريد فيـو مهمة هذا الزر هي حفظ علامة التشك في الداتا قريد فيو في العمود datago  فقط 
فإذا قام المستخدم بتحديد مجموعه من المعاملات وضغط زر حفظ يحفظها ويقوم بتظليلها 
أما باقي حقول الجدول سأهتم بأمرها لأن إدخالها عن طريق تكست بكس
الرد }}}
تم الشكر بواسطة:



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


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