03-03-16, 09:58 AM
03-03-16, 12:30 PM
(03-03-16, 09:58 AM)adel27 كتب : [ -> ]هل جربت الكود قبل وضعه يا أخي الكريم
الكود ينقصه تعريف المتغير
بالتأكيد اخي الكريم الكود يعمل دون مشاكل
صحيح لقد نسيت ان اضع المتغيرات التي تم تعريفها
عموما هذا المثال كاملا بعد التعديل
03-03-16, 12:41 PM
03-03-16, 01:48 PM
الحقل الخاص بالتحقق ضعه من نوع bit
04-03-16, 01:47 AM
يا عسـل المثال لا يعمل بالشكل الصحيح
الكود عدلت فيه الداله أتضح معي طريقتين
الأولى عند الضغط على حفظ يحدد الجميع
وعند أزالة التحديد ثم الضغط على حفظ يزيل التحديد عن الكل
ألصق الكود في المثال اللي موجود عندك وستجد أنه لا يعمل
الآن الجدول لدي في قاعدة البيانات كالتالي ID*Name*Num_Pr*Ght_pr*Agra*datego*tk
ما يهمني هو الحقل (tk( يظهر في الداتا قريد فيو بعلامة تشك على طول بدون أضافة تشك
أحنا أقتربنا من الحل أن شاء الله وأشكرك على تعاونك
الكود عدلت فيه الداله أتضح معي طريقتين
الأولى عند الضغط على حفظ يحدد الجميع
وعند أزالة التحديد ثم الضغط على حفظ يزيل التحديد عن الكل
كود :
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( يظهر في الداتا قريد فيو بعلامة تشك على طول بدون أضافة تشك
أحنا أقتربنا من الحل أن شاء الله وأشكرك على تعاونك
04-03-16, 03:55 AM
يا أخي عادل هنا تضع رتبة حقل ال ID وليس رتبة حقل ال tk
PHP كود :
If CheckData(CInt(DataGridView1.Rows(i).Cells(0).Value)) = 1
04-03-16, 11:26 AM
(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(strSelect, con)
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(strSelect, con)
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
ملاحظة الصورة الصورة الأخيرة رفعت بالخطأ
بارك الله فيك استاذنا القدير خضر
يعطيك العافية على هذا الشرح الجميل.
04-03-16, 06:45 PM
السلام عليكم ورحمة الله وبركاتة
أخي العزيز انا عملت لك مثال على حسب فهمي لطلبك لو المثال لا يلبي المطلوب لو ممكن توضح لي وللأخوة الأعضاء أكثر عن طلك
* مرفق صورة لمكونات للجدول المستخدم
أخي العزيز انا عملت لك مثال على حسب فهمي لطلبك لو المثال لا يلبي المطلوب لو ممكن توضح لي وللأخوة الأعضاء أكثر عن طلك
* مرفق صورة لمكونات للجدول المستخدم
06-03-16, 10:57 AM
شــاكر ومقدر أهتمامكم
أستأذ خضر لا أعرف كيف أشكرك على هذه المعلومات المفيده والله يكتب لك الأجر ياغالي
بالنسبه لموضوعي اللي ما فهمه سبق وأن الأستاذ خضر عمل لي مثال والمثال هذا نفس الفكره اللي أحتاجها بالضبط ولكن أحتاج إلى تطبيقه
على سكيـول سيرفر
[attachment=9718]
وهذه صوره للجدول
[attachment=9719]
أستأذ خضر لا أعرف كيف أشكرك على هذه المعلومات المفيده والله يكتب لك الأجر ياغالي
بالنسبه لموضوعي اللي ما فهمه سبق وأن الأستاذ خضر عمل لي مثال والمثال هذا نفس الفكره اللي أحتاجها بالضبط ولكن أحتاج إلى تطبيقه
على سكيـول سيرفر
[attachment=9718]
وهذه صوره للجدول
[attachment=9719]
06-03-16, 12:18 PM
ههههههههههههه أعتذر والله سامحني تعبتك معاي
ولكن هذا الحقل المراد فيه حفظ قيمة التشك بكس هل تم التحديد أم لا وحفظ التحديد
لأن المستخدم سوف يعمل تحديد للمعاملات التي تم أنجازها فعند تحميل الفورم مره أخرى تظهر المعاملات التي قام بتحديدها
أنا وضعت الحقل bit فظهر معي في الداتا قريد فيو عمود datago مثل علامة التشك
================================================
هنـاك زر أسفل الداتا قريد فيـو مهمة هذا الزر هي حفظ علامة التشك في الداتا قريد فيو في العمود datago فقط
فإذا قام المستخدم بتحديد مجموعه من المعاملات وضغط زر حفظ يحفظها ويقوم بتظليلها
أما باقي حقول الجدول سأهتم بأمرها لأن إدخالها عن طريق تكست بكس
ولكن هذا الحقل المراد فيه حفظ قيمة التشك بكس هل تم التحديد أم لا وحفظ التحديد
لأن المستخدم سوف يعمل تحديد للمعاملات التي تم أنجازها فعند تحميل الفورم مره أخرى تظهر المعاملات التي قام بتحديدها
أنا وضعت الحقل bit فظهر معي في الداتا قريد فيو عمود datago مثل علامة التشك
================================================
هنـاك زر أسفل الداتا قريد فيـو مهمة هذا الزر هي حفظ علامة التشك في الداتا قريد فيو في العمود datago فقط
فإذا قام المستخدم بتحديد مجموعه من المعاملات وضغط زر حفظ يحفظها ويقوم بتظليلها
أما باقي حقول الجدول سأهتم بأمرها لأن إدخالها عن طريق تكست بكس