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

اذا كان ال UPDATERيحتوي بيانات جدولين كيف اضع هذه البيانات في الDATA SET ؟ يعطيني ERROR!

مغلق
بدأه warning في 4 ديسمبر 2007 · 18 رد · 1,612 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي مشكله في الكود التالي :

	Dim sqlStr As String = "SELECT(SELECT CITY_NAME FROM CITIES WHERE CITY_ID = DEST_FROM) a,(SELECT CITY_NAME FROM CITIES WHERE CITY_ID = DEST_TO) b,DEST_id,DEST_VALUE FROM DESTS"

		conn.Open()
		Dim DataAdapter1 As New SqlDataAdapter(sqlStr, conn)
		DataAdapter1.Fill(dataSet1, "Dests")

		conn.Close()

		TextBox1.DataBindings.Add("Text", dataSet1, "cities.City_name")
		TextBox2.DataBindings.Add("Text", dataSet1, "cities.City_name")
		TextBox3.DataBindings.Add("Text", dataSet1, "Dests.Dest_id")
		TextBox4.DataBindings.Add("Text", dataSet1, "Dests.Dest_value")

أعتقد ان سبب الايرور هو اني لا اضع في الداتا سيت1 الا الجدول Dests ولكن عندما حاولت وضع فاصله واضافه الجدول الاخر اعطاني ايرور,, ارجو إعطائي الحل مع الشكر مسبقاً ..

#3

السلام عليكم

اعتقد بأن المشكلة في جملة الاستعلام وليست في الداتا ست ... قم بوضع الكود مع المرفقات ودعنا نحاول سوياً في حل المشكلة

تم تعديل هذه المشاركة بواسطة aswany في 4 ديسمبر 2007 في 17:39

#4

على حسب معلوماتي المتواضعه في حال الاستعلام من جدولين فان select statement لا بد من ان تكون متبوعه بــ INNER Join او Outer Join على حسب العلاقه بين الجدولين

تم تعمل جدول لتملأه بالنتيجة الاستعلام من الجدولين الاصلين لنفرض ان لدي جدولين اسمهما products و suppliers فيكون الاستعلام كالاتي

sqlstr = "SELECT ProductID, ProductName, SupplierID, CompanyName, City" & _
                        " FROM (Products INNER JOIN Suppliers ON SupplierID = SupplierID)"

حيث productID و productName من الجدول الاول و SupplierId , CompanyName , City من الجدول الثاني

Dim Dests as new datatable
Dim DataAdapter1 As New SqlDataAdapter(sqlStr, conn)
DataAdapter1.Fill(dataSet1, "Dests")

        conn.Close()

        TextBox1.DataBindings.Add("Text", dataSet1, "cities.City_name")
        TextBox2.DataBindings.Add("Text", dataSet1, "cities.City_name")
        TextBox3.DataBindings.Add("Text", dataSet1, "Dests.Dest_id")
        TextBox4.DataBindings.Add("Text", dataSet1, "Dests.Dest_value")

ان شاء الله اكون وفقت في الشرح

لا تنسونا من الدعاء لوالدتي بالاجر و الشفاء

#5

System Down

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

aswany

لقد جربت الإستعلام قبل وضعه , يعمل وهو سليم جداً

الكود في المرفقات

, أشكرك

haz_mi

نعم ولكني لا استطيع الربط , حيث اني استعمل في هذا الاستعلام Sub Quere , واذا ربطت ستخرج نتائج خاطئة , لذلك أرجو أن لا تركزوا على الاستعلام فهو يعمل , ولكن المشكلة متواجدة في مكان اخر حيث يعطيني الخطأ عند السطر هذا

TextBox1.DataBindings.Add("Text", dataSet1, "cities.City_name")

بالنسبه للكود الذي كتبته انت أعتقد انه يوجد ملاحظه , أو شئ لم افهمه انا انظر هنا انت تسند قيم الادابتر الى الداتا ست وتاخذها من جدول Dests

DataAdapter1.Fill(dataSet1, "Dests")

هذا مافهمته انا ,, اذا كان فهمي خاطئ أرجو توضيحه , المهم انك بعد ذلك تقول له

TextBox1.DataBindings.Add("Text", dataSet1, "cities.City_name")

وهو الغير واضح في الموضوع , أنك تقول له خذ City_name الموجوده في جدول Cities من الداتا ست 1 , مع ان الداتا ست واحد ارتبطت بجدول واحد فقط لا غير ,,

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

المرفقات تحتوي على الكود مع ملاحظه اني الخطأ فقط عندما حاولت اضافة جدولين في الموضوع , لاني قبل القيام بهذه العمليه طبقتها باستخدام جدول واحد وعملت معي بشكل 100%

code999.txt

#6
warning كتب:
System Down

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

تستعمل 2 آدابتر (أو تستعمل الآدابتر الواحد مرتين) حيث تستخدم جملة SQL واحدة فقط كل مرة.

#7

System Down

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

#9

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

#11

مازالت الامور غير واضحه في هذا الكود في ربط المدن مع العروض .. على كل حال جرب التالي :-

1- قم بوضع كلمة as قبل a و b في جملة الاستعلام .

2- تاكد من ان جملة الاستعلام لا تعيد اي قيمة null .. واذا كان هناك اي dbnull فحاول علاجها .

#12

يااخوان جمله الاستعلام لا تعيد اي NULL ومازلت ابحث عن حل ,, ولم استطع حل هذه المشكلة ,, ارجوكم اعطوني حل!!

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

#13
TextBox1.DataBindings.Add("Text", dataSet1, "cities.City_name")

أنت هنا تريد إظهار بيانات العمود City_name الموجود في الجدول cities الموجود في dataSet1 ... و المشكل هنا .. حيث أنه لا يوجد جدول اسمه cities في dataSet1 ...

إدن عوض السطر السابق بالسطر التالي

TextBox1.DataBindings.Add("Text", dataSet1, "Dests.City_name")

بالتوفيق

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#14

نفس الخطأ :)

#15

تم حل المشكلة ,,

للفائدة :

المشكلة كانت اني قد غيرت اسماء الاعمده في الكويري , ولذلك يجب تغيير اسماء الاعمده في الكود :

SELECT(SELECT CITY_NAME FROM CITIES WHERE CITY_ID = DEST_FROM) a,(SELECT CITY_NAME FROM CITIES WHERE CITY_ID = DEST_TO) b,DEST_id,DEST_VALUE FROM DESTS

إذن لابد أن يكون الكود هكذا :

		TextBox1.DataBindings.Add("Text", dataSet1, "Dests.a")
		TextBox2.DataBindings.Add("Text", dataSet1, "Dests.b")
		TextBox3.DataBindings.Add("Text", dataSet1, "Dests.Dest_id")
		TextBox4.DataBindings.Add("Text", dataSet1, "Dests.Dest_value")

تم تعديل هذه المشاركة بواسطة warning في 10 ديسمبر 2007 في 09:14

#16

والله من الاول أنا كنت حاسس ان المشكلة في جملة الاستعلام ..ومش في الداتا .. لكن الظاهر إنه آن الآوان علشان اغير النظاره ..

وخلينا متواصلين دايما يا باشا

وسلام

#17

السلام عليكم

يا أخي

لا يمكن ملأ دطاأدبطر بجدولين

و هدا كود مناسب لعملية

declation génral: dim adapter1,adapter2 as (oledbdataadapter or sqldbdata.....)

dim dst as new dataset,sql as string

form

khod ya akhi code monasib lil 3amaliya

dim adapter1,adapter as (oledbdataadapter or sqld.....)

dim ds as new dataset,sql as string

sub form_load(...)

#18

this code use for make 2 table in one dataset :

dim ds as dataset

dim adapter1,adapter2 as (oledbdataadapter,sqldbdataadapter,....),connection as oledbconnection,

dim sql as string

sub form_load(..)

la chaine de connexion : connection=connectionString.....

dim ds as new dataset

sql="select * from table1"

adapter1=new oledbdataadapter(sql,connection)

adapter1.fill(ds,"table1")

sql="select * from table2"

adapter2=new oledbdataadapter(sql,connection)

adapter2.fill(ds,"table2")

end sub

#19

اسواني:

شكرا على ردك اخي الكريم , ويكفينا تواجدك .

الأخ Chibimed

مشاركة جميله اخي الكريم , ولكن اعتقد ان الداتا ادابتر لم يملئ الا بجدول واحد , وهو ناتج الكويري , ولا يهم مادام ناتج الكويري من جدول او عشره المهم انه جدول واحد وناتج لكويري واحد. هذا مافهمته , ارجو ان تصحح لي والا لما عمل الكود بشكل جيد الان؟

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

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

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

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

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

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