الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهي المشكلة في Datagrid

مغلق
بدأه aiasalem في 7 فبراير 2008 · 7 رد · 1,023 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا عامل برنامج علي الفيجوال بيزيك دوت نت بقاعدة بيانات اكسس

المهم انني اعمل بحث علي عدد 4 حقول داخل جدول رقم 1 في قاعدة البيانات والمشكلة تنحصر في انني اريد ان اعمل بحث يقوم بالبحث بالتوالي علي الحقل الاول ثم الحقل الثاني ثم الحقل الثالث ثم الحقل الرابع وبالتالي اذا كانت نتيجة البحث ايجابية سوف يظهر سجل واحد فقط في الداتا جريد

حيث ان المراد البحث عن السجل كله بحقوله

وارفقت الكود

Dim job11 As DateTime

job11 = dd.Text

Dim con As New OleDb.OleDbConnection

Dim ds1 As New DataSet

Dim sql As String = "SELECT Name1, Phone1,job1,mang1,mangg1,total FROM table1 ORDER BY Name1;"

con.ConnectionString = "provider = Microsoft.jet.oledb.4.0;" & "Data Source=" & Application.StartupPath & "\MyData.mdb;User ID=Admin;Jet OLEDB:Database Password=ado "

Dim da As New OleDb.OleDbDataAdapter(sql, con)

con.Open()

da.Fill(ds1, "table1")

DataGrid1.DataSource = ds1.Tables("table1")

Dim dv As New DataView(ds1.Tables("table1"))

dv.RowFilter = "name1 = '" & TextBox1.Text & "'"

DataGrid1.DataMember = ""

DataGrid1.DataSource = dv

هذا الكود يقوم بالبحث فقط عن الاسم

فأنا اريد المساعدة منكم بكيفية البحث عن الحقول الموجودة الاخري في نفس الزر

والمثال التالي يوضح الفكرة المطلوبة

الاسم رقم القيد تاريخ ابتداء الاجازة تاريخ نهاية الاجازة نوع الاجازة

اولا انا قمت بالاتي علي زر اضافة الاجازة:-

علي 10 2/2/2008 3/2/2008 سنوي

حتي الان تمام ولاتوجد مشكلة

ولكن عند اضافة اجازة ونفس بيانات الموظف السابق ونفس بيانات الصف السابق

لابد ان يحدث اعتراض وهو هنا المطلوب

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

هنا السؤال كيف يتم عمل ذلك ؟

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

#2
dv.RowFilter = "name1 = '" & TextBox1.Text & "' And Phone1 = '" & TextBox2.Text & "'" & ... etc...

يعني استخدم المعامل AND للفصل بين الحقول التي تود البحث فيها تماما كجملة Sql عادية

تم تعديل هذه المشاركة بواسطة blackeyes في 7 فبراير 2008 في 15:56

#3

هناك فى المواضيع موضوع باسم ( ممكن سؤال فى الـ datagridview ) ممكم يساعدك

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

dim dr as oledbdatareader
dim sql as rteing
sql = " select * from tabel1 where  Name1= '" & name1 & "' or Phone1  = '"  &phone1 &"' or &jop1  ='" & jop1 &"' or mang1 = '" & mang1 &"' or mangg1 = '" & mangg1 &"' or total ='" & total &'""  
cm.commandtext = sql
cm.connection = cnn
dr = cm.executereader()
if dr.read then
msgbox(" يوجد ملف بنفس الاسم ")
exit sub 
end if

الخير هنا ربى اغفر لى ولوالدى وللمؤمنين يوم يقوم الحساب000 امين

#4

اخي العزيز مشكور جدا ردك وعلي مجهودك

بالفعل نجحت المشكلة في الداتا جريد

ولكن بعض المشاكل واجهتني وسوف اشرحها لك وهي:-

اول مشكلة

انا بالفعل قمت بتجربة الكود الذي ارسلته ولكن لم يفلح معي وارفقته لتوضح لي ماهو الخطأ:-

name1 = txt_name1.Text

phone1 = txt_phone1.Text

job1 = dtp1.Text

mang1 = dtp2.Text

mangg1 = cmb1.Text

total = txt_total.Text

cm.CommandText = "INSERT INTO Table1(Name1,phone1,job1,mang1,mangg1,total)" & _

"values ('" & Trim(name1) & "','" & Trim(phone1) & "','" & Trim(job1) & "','" & Trim(mang1) & "','" & Trim(mangg1) & "','" & Trim(total) & "' ) "

cm.Connection = cnn

Try

cm.ExecuteNonQuery()

Catch ex As Exception

MsgBox(ex.Message)

End Try

Dim dr As OleDbDataReader

Dim sql As String

sql = "SELECT Name1, Phone1,job1,mang1,mangg1,total,id FROM table1 ORDER BY Name1;"

cm.CommandText = sql

cm.Connection = cnn

dr = cm.ExecuteReader()

If dr.Read Then

MsgBox(" يوجد ملف بنفس الاسم ")

Exit Sub

End if

ولكن يقوم بالاضافة ثم تظهر الرسالة بذلك

فماهي المشكلة ارجو كيفية عمل ذلك الكود

ثانيا اهم مشكلة واجهتها اليوم ولم تخطر في بالي وشرحها كالاتي

علي سبيل المثال :-

انا قمت بعمل اجازة كالاتي

رقم القيد الاسم تاريخ البداية تاريخ الانتهاء

10 علي 10/2/2008 13/2/2008

ثم قمت باضافة اجازة لنفس الموظف كالاتي

رقم القيد الاسم تاريخ البداية تاريخ الانتهاء

10 علي 10/2/2008 11/2/2008

اظن الفكرة اتضحت حيث انه من المفروض اظهار رسالة تفيد انه توجد اجازة للموظف " علي " موجودة بالفعل من تاريخ 10/2/2008 الي 13/2/2008

معلش انا وجعت دماغك بس انا كمان مش عارف اكمل البرنامج معلش انا ثقلت عليك

#5

بسم الله الرحمن الرحيم

اولا : اخى هل انت عرفت name1 ..... الخ على انها متغير نصى ولا .........

ثانيا : انت استخدمت insert into قبل ما تعمل استعلام حاول تعديل الكود

بحيث عند تنفيذ الامر يتم عمل استعلام ان كانت البيانات موجوده سوف يظهر الرساله وان لم تكن موجوده سوف يتم الادخال حيث ان read هى المسئوله عن تحديد هل الكائن يحتوى على بيانات ناتجه من الاستعلام ام لا .

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

الخير هنا ربى اغفر لى ولوالدى وللمؤمنين يوم يقوم الحساب000 امين

#6

السلام عليكم ورحمة الله وتعالي

مشكور ردك والحمد اللله قمت بحل مشكلة التكرار بس علي فكرة بطريقة اخري عن طريق عمل استعلام في جدول الاكسس عن طريق التكرار والحمد الله وفقت ونجحت الطريقة علي اكمل وجه وعلي فكرة ايضا انا والحمد لله قمت بتعليم نفسي جدا دون اللجوء الي فرصات او غيره وليس بمجرد نقل الاكواد

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

وانا بالفعل قمت بالبحث من خلال المنتدي علي هذه الفكرة ولم اجدها

#7

السلام عليكم ورحمه الله وبركاته

ارجوك حدد المشكله تفصيلا وان شاء الله اقدر اساعدك انت قلت ان مشكله التكرار قدرت تحلها يعنى بقى مشكله ان البرنامج يقوم بالاضافه ثم تظهر الرساله (ولا ايه )

مع خالص تحياتى

الخير هنا ربى اغفر لى ولوالدى وللمؤمنين يوم يقوم الحساب000 امين

#8

مشكور ردك فعلا واهتمامك

علي العموم الفكرة الخاصة بك نجحت بس في شء ان الحقل الخاص بالتاريخ بين #

وبالفعل نجحتتت ولو حبيت ابعتلك الكود ممكن ارسله لك

سوف احدد لك المشكلة التي نتاول الحديث وهي تتلخص في

علي سبيل المثال :-

انا قمت بعمل اجازة كالاتي

رقم القيد الاسم تاريخ البداية تاريخ الانتهاء

10 علي 10/2/2008 14/2/2008

ثم قمت باضافة اجازة لنفس الموظف كالاتي وكن اتاريخ متضمنا التاريخ السابق

رقم القيد الاسم تاريخ البداية تاريخ الانتهاء

10 علي 11/2/2008 12/2/2008

يقوم بالاضافة :-

اظن الفكرة اتضحت حيث انه من المفروض اظهار رسالة تفيد انه توجد اجازة للموظف " علي " موجودة بالفعل من تاريخ 10/2/2008 الي 14/2/2008

معلش انا وجعت دماغك بس انا كمان مش عارف اكمل البرنامج معلش انا ثقلت عليك

كيف اعمل هذه الفكرة ارجو من الله ان تقوموا بمساعدتي

اعطني الفكرة وانا احاول بأذن الله علي حلها

هذا الموضوع مغلق.

مواضيع مشابهة