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

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

مغلق
بدأه MATRIXD0TNET في 30 يناير 2008 · 4 رد · 1,722 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

انا عندي تكست بوكس وأريد أن أربطه بحقلين مختلفين كل حقل منهم في جدول مختلف والفكرة في ان عندما يقوم المستخدم بادخال رقم الموظف (مثلا) والضغط على انتر يقوم باظهار اسمه في نفس التكست وبعدها يقوم بالضغط على زرار حفظ فيحفظ الاسم في جدول اخر وانا رابط التكست بالداتا بيندج بس مش عارف أربطه مع جدول تاني

ياريت أكون عرفت أوصل المشكلة

وياريت لو حد عنده حل يقوله

وفي انتظار ردكم

وشكراااااااااااااا

كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم

و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول

الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي

#2

أخي الحبيب مربع النص أو التكست بوكس للأسف لايتيح الربط المعقد اي ربط خاصية بأكثر من حقل وهذا النوع يدعمه فقط بعض الادوات مثل اداة listbox وشقيتها comboBox وغيرها ولكن إن كنت تريد فقط عملية اداخال الرقم واظهار الاسم المطابق له في نفس المربع فلايحتاج هذا إلى ربط لأن الربط بالأداة DataBinding يقوم بإظهار القيم في المربع واتاحة التجول فيها فقط ولايتيح مايسمى بالربط المعقد

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

ds.tables(0).Defaultdataview.filter="id="&textbox.text
texbox.text=ds.tables(0).rows(0)("name")

طبعا DS اختصار dataset وهو الكائن الذي به قاعدة البيانات والجداول أما إن كنت تستخدم طريقة أخرى فيمكنك الاستعلام بنفس الطريقة السابقة ولكن بالكائن sqlcommand أو oleCommand كالتالي:

dim cmd as new sqlcommand("select * from table1 where id="& val(textbox.text),cn)
dim reader as new datareader=cmd.executeReader
if reader.read then
textbox.text=reader(0)("name")

هكذا

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

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3

الف الف شكر لردك أخي العزيز أبو عزام

لكن كيف يتم ذلك في الكومبو والليست بوكس؟؟

ولي سؤال اخر بسيط لو ممكن توضحوا وهو عبارة عن (مثال للتوضيح)

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

وياريت لوحد يعرف يشارك

وشكراااااااااا على التوضيح

كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم

و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول

الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي

#4

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

اقتباس
وبعد ذلك قمت بوضع الجدول على الفورم عن طريق السحب و الاسقاط

دائما ما كان يحذرنا الدكتور في الكلية من استخدام هذه الطريقة لانها تسبب مشاكل فانت عندما تستخدم هذه الطريقة يتم عمل كونكشن علي الداتا بيز في المسار الحال او علي السيرفر الحالي

نفترض مثالا انك قمت بعمل داتا بيز بالاكسس ووضعتها علي الدريف :f واستخدمت طريقة الدراج دروب كما تقول (لحد هنا مفيش مشكلة)

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

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

لتفادي هذه الطريقة العقيمة عليك بكتابة الكود الذي يقوم بتخليق كونكشن و الادبتر وكذلك الدات ست مثال:

ٍSqlconnection con=new Sqlconnection(); 
con.ConnectionString="write connection string her"

ويفضل استخدام app.config

وبهذه الطريقة مهما عملت اي تغيرات في الداتا بيز لن يكون هنا مشاكل

اما بالنسبة للمثال الذي تريده علي استخدام الdatabinding مع combobox اتمني ان المثال المرفق يساعك

ProblemSolution.zip

#5

وعليكم السلام

الف شكر للأخت دعاء مختار على الرد

ولكن أنا أعرف طريقة الكونيكشن و الادابتر وكذلك الداتا ست(by code) بس للأسف دائما بتاخد وقت طويل علشان كده قولت استخدم طريقة البايندج لأنها أسرع بقليل ولكن لم أكن أتوقع أنه لا يوجد حل لمثل هذه المشكلة ولكن الظاهر أنه لا يوجد مفر من طريقة ال(by code) وشكرا لك على التوضيح

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

ولكن الف االف للأخت دعاء مختار على الرد والاهتمام و لكل من ساهم في التوضيح

كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم

و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول

الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…