• 0
bahaa1985

هل يمكن التعامل مع قاعدة بيانات ليست موجودة في sql server management studio؟

سؤال

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

لدي برنامج WPF من ضمن ملفاته في مجلد debug قاعدة بيانات sql و هذه القاعدة لم أقم بعمل attach لها في SSMS، و كان الكونكشن في البداية كالآتي:

Data Source=.\SQLEXPRESS;ِAttachDbFilename=|DataDirectory|\bin\Debug\ResaleDB.mdf;Integrated Security=True و لكن عندما احاول فتح نافذة ما تكون النتيحة خطأ ما لا أذكره الآن، و لكن يبدو أنه يحاول عمل attach لقاعدة البيانات الموجودة في مجلد IDE في مجلد الفيجوال ستوديو في C ، و طبعاً هذا الملف غير موجود !!.

المهم قمت بحذف قاعدة البيانات من SSMS و قمت بتغيير جملة الإتصال إلى:

Data Source=.\SQLEXPRESS;ِInitial Catalog=|DataDirectory|\bin\Debug\ResaleDB.mdf;Integrated Security=True

و كان الخطأ الناتج عند عمل build للبرنامج كالتالي:

Cannot open database "|DataDirectory|\bin\Debug\ResaleDB.mdf" requested by the login. The login failed.

Login failed for user 'The_specialist\bahaa'.

رغم ان المستخدم 'The_specialist\bahaa له صلاحيات للتعامل مع قاعدة البيانات ResaleDB و أيضاً قمت بتعديل مستخدمي قاعدة البيانات من خلال security tab و لم يفلح الأمر.

كيف أتجنب رسالة الخطأ هذه؟؟ و أيضاً كيف يستخدم العميل البرنامج بدون تنصيب sql server ؟؟؟

و شكراَ مقدماً لأي مساعدة.....

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

10 إجابة على هذا السؤال .

  • 0

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

الحقيقة استغربت و خاصة ان مصمون السؤال مختلف عن رأس الموضوع

فمشكلتك تكمن في عمل Attach قاعدة بيانات لSQL Server Express لكن برأس السؤال تسال عن sql server management studio

فالsql server management studio ما هو إلا اداة رسومي لك لتسهل عليك عملية التحكم بخدمة الSQL Server حتى انك تستطيع من خلاله فتح قواعد البيانات الموجودة بالSQL Server Express و ذلك بادخال .\SQLEXPRESS كاسم السيرفر

ثم ان DataDirectory حقيقة تشير اثناء انشاء البرنامج لمجلد الbin\debug لو انت تعمل debugging على الDebug mode او bin\release لو انت تختبر بواسطة الRelease mode

اذا اجعل الConnection String الخاص بك هكذا

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|ResaleDB.mdf;integrated security=true;

و جرب مرة اخري

تقبل خالص تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي قم باضافة اتصال من Server Explorer ومن ثم قم بتحديد قاعدة بياناتك بعد الاتصال وقم بنسخ الخاصيه ConnectionString واستخدمها, اما بالنسبه للسيكول سيرفر لابد عليك من تنصيب محرك قاعدة البيانات طبعا توفر الدوت نت لك هذا عند عمل نشر للمشروع وذلك من Prerequistes

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قمت بتعديل الكونكشنو ظهر هذا الخطأ:

An attempt to attach an auto-named database for file C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ResaleDB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

طبعاً قاعدة البيانات ليست موجودة في مجلد IDE لكي لا يقول لي أحد إبحث عنها هناك.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انظر اذا كنت تستطيع فتح المجلد التالي

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

ثانيا DataDirectory تشير الى المجلد الموجود به البرنامج. ويظهر انه في حالة التشغيل من الفيجوال استوديو تشير الى مجلد الفيجوال استوديو والذي هو C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\

لتحديد DataDirectory يدويا يمكن استخدام الامر


AppDomain.CurrentDomain.SetData("DataDirectory", "C:\DB")

حيث تم جعل DataDirectory المجلد C:\db وهذا على الاقل مؤقتا للعمل داخل الفيجوال استوديو .

للتلخيص اعتقد يمكن اتباع الخطوات التالية:

ادخل على ssms وازل قواعد البيانات التي تخص هذه القاعدة عن طريق عمل deattach .

ضع قاعدة البيانات في مجلد ما مثل c:\db واستخدم الامر setdata .

اذا كنت تستخدم ويندوز 7 او فيستا شغل الفيجوال استوديو او البرنامج كمدير نظام run as administrator.

وان شاء تعمل بشكل صحيح

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم مرة اخرى،

اولاً:لنفرض أن البرنامج سيعمل على جهاز واحد فقط، فهل هناك حاجة لتنصيب SqlServer على الجهاز، أم انه لا داعي لذلك؟ و إذا كان لا داعي لذلك فكيف ستكون جملة الاتصال؟؟

ثانياً:و أيضاً Sql server 2008 ليس موجوداً في prerequistes (انا استخدم VS 2008 SP1) و قرأت على المواقع الأخرى ان الحل هو تحميل vs 2008 express ثم نسخ sql server 2008 express bootstrapper من مجلد vs 2008 express و لصقه في مجلد vs 2008 sp1 الأصلي، و جاري التجربة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي لابد من تنصيب البيئة التشغيلية للسيكول سيرفر, اما بالنسبة للسكول سيرفر 2008 مش موجوده في اصدار الفيجوال ستوديو 2008 انما موجوده في الاصدار 2010

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

قمت بتثبيت VS 2008 express sp1 و ظهرت sql server 2008 ضمن prerequests. ثم جعلت جملة الاتصال في المشروع كالآتي:

Data Source=.\SQLExpress;AttachDbFilename=|DataDirectory|Resale.mdf;integrated security=true

و لكن بعد ذلك فضلت أن اجعل عملية الattach برمجياً عند تحميل الشاشة الرئيسية و ذلك عن طريق التأكد من وجود قاعدة البيانات و إذا لم تكن موجودة يتم عمل attach لها. لذا عدلت جملة الاتصال في النهاية لتكن كالآتي( بعد تنصيب البرنامج):

Data Source=.\SQLExpress;Initial Catalog=Resale;integrated security=true

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

انصحك اخي باستخدام ال SQL Server Authentication لأمان اكثر لقاعدة بياناتك وكذلك لو تطلب برنامجك اتصال عبر الشبكه ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .