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

إعتراض يظهرلى بسبب جملة الإستعلام قلولى إيه السبب

بدأه Hossam8749 في 17 أكتوبر 2009 · 16 رد · 873 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخوانى الكرام

ده الكود اللى أنا بكتبه

 Cmd.CommandText = "Drop View V3"

DR = Cmd.ExecuteReader
DR.Close()
Cmd.CommandText = "Create View V3 As Select * from Tabel where A_Net between '" & 120000 & "' and '" & 180000 & "'"
DR = Cmd.ExecuteReader
DR.Close()
Cmd.CommandText = "select * from v3"
AD.SelectCommand = Cmd
AD.Fill(DS, "v3")
CN.Close()

والإعتراض بيظهر عند الجملة ديه ومش بيكمل الكود

 AD.Fill(DS, "v3")

ورسالة الإعتراض بتقول

OLEDB Exception was Unhandled

Data type mismatch in criteria expression.

أنا فهمت إن الإعتراض على نوع الحقل لأن الحقل اللى إسمه A_Net نوعه رقم

لما بغيره لنص بيكمل الكود بدون مشاكل

بس أنا عايزه يكون رقم

أعمل إيه علشان المشكلة ديه تتحل ؟

منتظر منكم الرد ضرورى

عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير

اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك

وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك

#2

عندما حولت نوع الحقل إلى رقم هل أزلت علامات التنصيص ' من جملة الاستعلام؟

ملاحظات:

* لجمل الإستعلام التي لا ترجع أي بيانات (مثل drop و create و update) لا تستخدم ExecuteReader لأنها تستخدم لقراءة البيانات من الجملة، و استخدم ExecuteNonQuery هكذا:

Cmd.ExecuteNonQuery()

* عود نفسك من الآن على عدم استخدام ربط القيم إلى جملة الإستعلام نصياً (باستخدام & أو +) بل استخدم ما يسمى بالبارمترز parameters. الطريقة الثانية أفضل و أسلم، و تحميك من عدة مشاكل. هناك عدة مقالات على الويب و في المنتتدى حول استخدامه

#3

السلام عليكم

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

بالاضافة لملاحظات الاخ system down فلاداعي لعمل view وانما يوضع الاستعلام مباشرة فيصبح عندك الكود كمايلي :

Cmd.CommandText = " Select * from Tabel where A_Net between " & 120000 & " and " & 180000 
AD.SelectCommand = Cmd
AD.Fill(DS, "v3")
#4

ألف شكر يا إخوانى الأعزاء أنا بجد مش عارف أشكركم إزاى

شكرا يا أخ طارق ويا أخ سيستم داون

ألف شكر وجزاكم الله خير الجزاء

إشتغلت معايا فعلا وهدور على دروس للبرامترز وأفهمها إن شاء الله

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

بس

هم قالولنا كده فى الكورس

عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير

اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك

وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك

#5

سؤال أخى حسام لو سمحت

لماذا تحذف الفيو ثم تنشئه مرة أخرى فى كل مرة تستعرض فيها التقرير؟؟؟

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

اقتباس
هم قالولنا كده فى الكورس

أتمنى ألا يكون هذا كلامهم :S :S

بالتوفيق (ومتنساش العزومة :D)

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#6
اقتباس
هم قالولنا كده فى الكورس
اقتباس
أتمنى ألا يكون هذا كلامهم :S :S

هذا فعلا كلامهم (لإنى كنت درسته من قبل)

توجد العديد من الأساليب لتمرير القيم لتقرير الكريستال ريبورت فيمكنك مثلا تمرير إليها DataTable او تمرير جملة استعلام (لتنفيذها او لتمريرها إلى sp للتنفيذ بشكل ديناميكى)او تمرير اسم view او stored procedure.

الموضوع ده بيعتمد على كيفية عمل التقرير الخاص بك.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#7

أنا معاك يابو حميد ,, لكن أنا أسأل ليه أحذف الفيو وأرجع أنشئه من جديد؟؟؟؟

هل ده كلامهم؟؟!!

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#8

أيــــــــوه، yes، oui، ji، si

نعم بكل لغات الدنيا و متسألش ليه. علشان هو كده و مفيش غير كده

مدونتي: C++ Tips and Tricks

#9

لا حول ولا قوة إلا بالله

ياحسام ياحبيبى سيبك من العالم اللى هتوديك فى داهية دى :D

اقتباس
أيــــــــوه، yes، oui، ji، si

بقيت مثقف يامعلم :D

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#10
اقتباس
أنا معاك يابو حميد ,, لكن أنا أسأل ليه أحذف الفيو وأرجع أنشئه من جديد؟؟؟؟

هل ده كلامهم؟؟!!

انا استغربت في البداية لكن عندما تم الكلام عن الكريستال ريبورت ... :wacko:

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

#11
اقتباس
بقيت مثقف يامعلم

يعم انا اخرى شوية انجليزى على فرنساوى، ربنا يخلي لنا Google :lol:

مدونتي: C++ Tips and Tricks

#12
TareqVB كتب:
انا استغربت في البداية لكن عندما تم الكلام عن الكريستال ريبورت ... :wacko:

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

يمكن استخدام DataView بدلاً من هذه الطريقة "المكلكعة".

#13

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

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

علي فكرة ياباشا شكلك كدة بتاخد الكورس في AGC عشان هما شغلين كدة في الاستعلامات الغير ثابتة زي منتا عامل بس نصيحة أستخدم الطريقة الي المهندسين قلولك عليها الخاصة ب SP أو البرامترات علي طول أسهل خصوصا في تعديل الكود والتطوير في المستقل وبالنسبالي أنصحك بال SP لانه أسرع علي السرفر

..

.Net Developer

VB.Net - C#.net - ASP.Net - VB6

SQLServer2000,2005,2008

#14

أنا أسف لأنى إتأخرت فى الرد عليكم وشكرا يا إخوانى للمتابعة بس والله النت كان فاصل عندى فترة أربع أيام

GHOST2010 كتب:
سؤال أخى حسام لو سمحت

لماذا تحذف الفيو ثم تنشئه مرة أخرى فى كل مرة تستعرض فيها التقرير؟؟؟

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

أتمنى ألا يكون هذا كلامهم :S :S

بالتوفيق (ومتنساش العزومة :D )

حبيبى يا جوست2010

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

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

معرفش ده صح ولا غلط بس هم قالولى كده

وماتخافش عيب عليك مقدرش أنسى العزومة

Muhammad alaa كتب:
هذا فعلا كلامهم (لإنى كنت درسته من قبل)

الموضوع ده بيعتمد على كيفية عمل التقرير الخاص بك.

فعلا بيعتمد على كيفية عمل التقرير

بالظبط كده

إنت كنت بتدرس فين الكورس ؟

GHOST2010 كتب:
لا حول ولا قوة إلا بالله

ياحسام ياحبيبى سيبك من العالم اللى هتوديك فى داهية دى :D

يانهار أبيض يا جوست هيودونى فى داهية ؟؟؟؟؟؟؟؟؟

بس مقدرش أسيبهم انا وصلت للمستوى الحادى عشر ناقصلى مستوى واحد فقط

هاجى فى الأخر وأسيبهم أكمل وخلاص علشان أخد الشهادة

TareqVB كتب:
انا استغربت في البداية لكن عندما تم الكلام عن الكريستال ريبورت ... :wacko:

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

انا إن شاء الله لازم أقرأ وأعرف كل حاجة عن البرامتر ده

علشان معرفش عنه حاجة خالص

قريت عنه قبل كده بس من زمان ونسيته لأنى ماستخدمتهوش

شكرا يا جماعة على تعبكم والردود عليا ومتابعة الموضوع وإفادتى

عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير

اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك

وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك

#15
اقتباس
إنت كنت بتدرس فين الكورس ؟

من حوالى 4 سنين فى كوبرى القبه

مدونتي: C++ Tips and Tricks

#16
System Down كتب:
يمكن استخدام DataView بدلاً من هذه الطريقة "المكلكعة".

ما أنا يا سيستم داون ممكن أستخدمها ولكن هطبع إزاى معرفش إزاى أطبع الداتا فيو إنما الكريستال ريبورت بيطبع التقرير على طول

ahmed3la كتب:

علي فكرة ياباشا شكلك كدة بتاخد الكورس في AGC ..

إيه ده إنت عرفت إزاى يا أبو حميد فعلا باخد فى الAGC يابن اللذين أمنوا

لماح إنت إيه الفراسة ديه ما يمكن باخد فى أى حته تانية إشمعنا الشركة ديه اللى إنت قولتها

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

تم تعديل هذه المشاركة بواسطة Hossam8749 في 23 أكتوبر 2009 في 05:40

عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير

اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك

وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك

#17
Hossam8749 كتب:
ما أنا يا سيستم داون ممكن أستخدمها ولكن هطبع إزاى معرفش إزاى أطبع الداتا فيو إنما الكريستال ريبورت بيطبع التقرير على طول

تعبئ الـDataView (أو الـDataSet مش مشكلة) بالبيانات المطلوبة، ثم تدفعها إلى الكريستال ريبورت، ثم تطبعها. هذه تسمى Push Method

http://www.codeproject.com/KB/aspnet/crystal_report.aspx

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

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

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

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

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