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

استعلامين بنفس الصيغه .. الاول يعمل والثاني لا يعمل .. لماذا ؟

مغلقمُجاب
بدأه legend في 14 فبراير 2013 · 12 رد · 1,374 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

اخواني .. عندي استعلام من قاعده البيانات .. الاستعلام صحيح ولكنه لا يعمل معي وهو هذا :

 

" Select UserName, Password from user where UserName =" & TxtUserName.Text & "And Password ='" & TxtPassowrd.Text & "'"

 

وبنفس الكود السابق ولكن بوضع العلامة [ ] للجداول فالكود يعمل وهو كالتالي :

 

"SELECT [UserName] ,[Password] FROM [MOIDB].[dbo].[user] where [UserName] =" & TxtUserName.Text & "And [Password] ='" & TxtPassowrd.Text & "'"

 

هل يجب وضع الــ  [ ] للجداول ليعمل الكود .. وهل سيعمل الكود عند نقل البرنامج لجهاز آخر ..؟

 

ملاحظه: استخدم هذا الكود في برنامج الفيجوال بيسك .. Visual Studio 2012 & MS sql 2008 R1

 

 

ولكم تحيتي وتقديري ..

تم تعديل هذه المشاركة بواسطة legend في 14 فبراير 2013 في 12:08

#2 أفضل إجابة

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

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

بمعنى لو لديك اسم حقل First Name  لا يحتاج أن تحولها إلى كلمة واحدة وإنما يكفي إحاطتها بالأقواس المربعة

 

وكما يظهر في السكربت لديك أظن أن السبب هو الكلمة user  لأنها محجوزة حسب ما أظن

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

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

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

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 14 فبراير 2013 في 13:01

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

شاكرلك سرعه ردك عزيزي ابو احمد .. ولكن ,,,

 

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

البرنامج يشتغل معه .. بس معي ما يشتغل ..

فأعتقد (ان ما خاب ضني ) ان المشكلة مش في اسم user

 

تقبل تحيتي ..

#4

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

ومن جهة اخرى ذكرت الاحتمال الثاني أن الفرق في إضافة المالك قبل اسم الجدول

وهي تكون مطلوبة في حال وجود أكثر من قاعدة مفتوحة أو أكثر من يوزر

 

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

 

ووفقك الله لك خير

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#5

جزاك الله الجنه اخوي أبو أحمد على محاولتك .. ومنك ومن الخبراء نستفيد ..

 

تقبل تحيتي .. وبإنتظار الحل من الخبراء ..

#6

جرب ازالة [MOIDB].من الجمله الثانية

#7

عزيزي Karimsoft الكود الثاني يعمل بدون مشاكل ..

 

الكود الاول لا يعمل مع ان صيغته صحيحه على حسب علمي .. فسؤالي ليش ما يشتغل الا اذا وضعت الجداول في هالقوسين  [ ]

 

ولك تحيتي



عزيزي Karimsoft الكود الثاني يعمل بدون مشاكل ..

 

الكود الاول لا يعمل مع ان صيغته صحيحه على حسب علمي .. فسؤالي ليش ما يشتغل الا اذا وضعت الجداول في هالقوسين  [ ]

 

ولك تحيتي

#8

أخي ولكن الفرق بين الاثنين ليس فقط الأقواس
في الثاني هذا موجود
[MOIDB].[dbo].
 
بينما في الأول غير موجود قبل كلمة يوزر
وهذا الذي تحدثنا عنه أنه ربما الكود الأول لم يعمل بسبب عدم وجود هذا الجزء الذي يعبر عن أباء الجدول أي اسم القاعدة والمالك
أي في الكود الأول فقط أبدل
user
بـ
MOIDB.dbo.user

ثم انظر هل سيعمل أم لا

فإن عمل فهذا الفرق هو السبب

وإلا فالأقواس لها دور في الأمر

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#9

هلا براعي بلادي المبرمج أبو أحمد .. جربت واضفت اللي طلبته مني .. وللأسف لم يعمل .

 

شاكرلك متابعتك وإهتمامك .. ولك تحيتي

#10

اخي Legend كتجربه بسيطه لم لا تقوم بنسخ الاستعلام ولصقه في SQL Server Management Studio ستجد ان الكلمتين user, password هما كلمتان مفتاحيتان key words.

اخي @ابو احمد المبرمج، حتى عند وضع dbo.user.something تظل كلمة user كلمة مفتاحيه.

تحياتي

تم تعديل هذه المشاركة بواسطة mental-driller في 15 فبراير 2013 في 19:53

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#11

أكرمك الله أخي mental-driller

 

لقد ذكرت ذلك له في أول مشاركة لي

 

أبو أحمد المبرمج كتب:

أخي الكريم الأقواس وضعت لعدة أسباب أولا لتجنب التعارض مع الكلمات المحجوزة لصالح اللغة مثل كلمة Date  فلو أنك استخدمتها مباشرة لن يقبل ولكن مع إحاطتها بالأقواس يفهم المفسر أنك تقصد اسم جدول أو حقل وليس الكلمة المحجوزة
من جهة أخرى وضعت لتجنب الفراغات أو استبدالها بالشحطة السفلية أو إجبار المستخدم على جعل الأسماء بكلمات متلاصقة
بمعنى لو لديك اسم حقل First Name  لا يحتاج أن تحولها إلى كلمة واحدة وإنما يكفي إحاطتها بالأقواس المربعة
 
وكما يظهر في السكربت لديك أظن أن السبب هو الكلمة user  لأنها محجوزة حسب ما أظن
هذا من جهة ومن جهة أخرى ربما الكود عمل في الحالة التالية لأنك ضمن اسم المالك dbo
طبعا لا يشترط وضع الأقواس طالما أن الاسم لا يشابه كلمة محجوزة أو أنه كلمة واحدة وعدا ذلك فلا بد من الأقواس
والمحرر بشكل افتراضي يضع الأقواس لكل شيء تجنبا لحدوث تعارضات في حال تم تعديل الأسماء

 

فقال أن الكود الأول يعمل ونفى أن يكون ذلك السبب

فقلت ربما هناك سبب آخر

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#12

أعتذر على التأخير .. لي عوده غداً ان شاء الله بعد التجربه

#13

الأخوة : ابو احمد المبرمج - mental-driller ..

 

أعتذر عن التأخير ..

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

 

Incorrect syntax near the keyword 'user'.

 

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

 

لكم كل الشكر والتقدير على المساعده .. وصبركم علي .

 

 

تقبلوا تحيتي .

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

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

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

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

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

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