PDA

View Full Version : سوال: SQL Attach DB Automate



MehdiElexal
سه شنبه 19 اسفند 1393, 14:38 عصر
با سلام خدمت دوستان گل
همونطور ک از اسم تایپیک پیداست بنده بعد از کلی سرچ تو این سایت و ... چیز درستی مبنی بر اتچ دیتا بیس MDF به SQL پیدا نکردم
کلیت کار به این صورت هست که پس از دانلود دیتا بیس میخوام روی سیستم مقصد اتچ شه و سپس برنامه ادامه فعالیت هاش رو بده
با این کانکشن هم کاری از پیش نتونستم ببرم ارروری نداره ولی خب اتچ هم نمیشه

connectionString = (@"Data Source=.\"+ ServerName +@"; AttachDbFilename=|DataDirectory|\Database\DBESE.md f; Database=DBESE; Integrated Security=True; Connect Timeout=30; User Instance=True; Asynchronous Processing=true");
در ضمن شاید قبلا دیتا بیسی با همون نام اتچ شده باشه میخوام حالت آوررایت شه رو قبلی یا قبلی حذف شه جدیده اتچ شه یه همچین حالتی
با تشکر پیشاپیش :قلب:

Mofid.m
سه شنبه 19 اسفند 1393, 14:45 عصر
دقیقا مشکل من هم همینه
موندم قضیه چیه!!!
تو سیستم خودم دیتا بیس رو دی اتچ میکنم و برنامه رو اجرا میکنم دیتابیس رو اتچ میکنه اما روی سیستم مشتری نه.
این رو هم امتحان کردم که اومدم رو سیستم مشتری Sql رو کامل نصب کردم(منظورم engine و Management studio) و بعد خودم دستی بهش اتچ کردم کار کرد. اگر بازم دی اتچ کنم بازم کار میکنه(یعنی اتچ میکنه) ولی برای دفعه اول زورش میاد.

MehdiElexal
سه شنبه 19 اسفند 1393, 15:13 عصر
میتونم بدونم شما چطور اتچ میکنید ؟ برای من کلا اتچ نمیکنه و دیتایی هم نشون نمیده حتی رو سیستم خودم.
دستی اتچ میشه ولی با کدی ک بالا گذاشتم نه
روش اتچ شما به چه صورتی هست ؟
دوستان دیگر لطف کنن اگر اطلاعاتی دارن بگن تشکر

Mofid.m
سه شنبه 19 اسفند 1393, 15:19 عصر
دقیقا کانکشن استرینگ شماست.
ولی با کمی تغییر
گفتم که چون از SQL Server استفاده کردم به جای SQL Express تغییراتش این بوده.

private const string _ConnectionString = @"Data Source=(local); AttachDbFilename=|DataDirectory|NiloDB.mdf; Database=NiloDB; Integrated Security=True";

MehdiElexal
سه شنبه 19 اسفند 1393, 16:11 عصر
دوستان اگر ممکنه با نظراتتون مارو خوشحال کنید ! تشکر

MehdiElexal
سه شنبه 19 اسفند 1393, 18:01 عصر
کسی نیست تو این زمینه کار کرده باشه ؟ من فکر میکنم خیلی از دوستان کار کرده باشن ...

elec60
سه شنبه 19 اسفند 1393, 22:30 عصر
شما باید با کلاس Microsoft.SqlServer.Management.Smo.Server کار کنید. این کلاس متد Attach و Detach داره. من قبلا این کار رو انجام دادم ولی یادمه یه گیرایی داشت که بالاخره رفع شد. مثلا فایل دیتابیس باید تو مسیر Data مربوط به Instance ای از SQL که بهش وصل شدین باشه و فقط اسم این فایل رو به متد Attach پاس بدین تا اتچ کنه.

بعد این قضیه رفتم سراغ EF و دیدم که از شر اتچ کردن و تنظیمات ConnectionString و ... راحت شدم. EF خودش با توجه به مدلم دیتابیس رو میسازه و اتچ متچ کردن لازم نیست(خودش اتچ میکنه) و اگه دیتابیس موجود باشه ازش استفاده میکنه. البته به شرطی که تو کلاس کانتکست تو سازنده به base اسم پایگاه داده رو پاس بدین...

MehdiElexal
چهارشنبه 20 اسفند 1393, 10:47 صبح
میشه کمی بیشتر توضییح بدید راجع به EF?
و اینکه نمونه مثالی چیزی ندارید ؟

MehdiElexal
دوشنبه 25 اسفند 1393, 10:19 صبح
دوستان کسی نظری در این رابطه نداره؟