PDA

View Full Version : سوال: پاک شدن دیتابیس بعد از build شدن پروژه



mansoor69
پنج شنبه 30 آذر 1391, 17:48 عصر
سلام
من توی connection string پروژه ای که مینویسم اشکال دارم.من همیشه دیتابیسم رو local می سازم که خودش attach بشه که مثلا وقتی واسه استاد میفریستم نیاز نیاشه اون اتچش کنه.حالا روی سیستم خودم که connectionstring میسازم آدرس داره.مشکل اینه که وقتی واسه استاد میفرستم اون آدرسه دیگه کار نمیده.پس از کلی تحقیق متوجه شدم تنها کاری که میشه کرد اینه که کانکشن استرینگ رو |DataDirectory| باید نوشت.سوال اولم اینه که این تنها راهشه که باید کانکشن رو به دایرکتوری بدم؟با توجه به اینکه dataset ها هم به همین کانکش.... کار میکنن.یعنی اگه دستورای Sql رو با یه کانکشن... دیگه بنویسیم دیگه dataset ها بدردنمیخورن چون به دیتابیس bin/debug اشاره میکنن.حالا مشکل دوم و اصلی اینه که وقتی |datadirectory| مینویسم.قبل هر run پروژه build میشه و اتفاق عجیبی که میفته اینه که دیتا بیس توی bin/debug هم دوباره ساخته میشه و تمام اطلاعاته قبلی پاک میشه.حالا میخواستم ببینم چطوری میشه جلوی دوباره ساختن دیتابیس تو bin/debug رو گرفت چون با توجه به کانکشن... این دیتابیسم دیگه دیتابیسه اصلیه پروژه هست. ببخشید طولانی شد.

momasa
یک شنبه 03 دی 1391, 15:47 عصر
سلام، اون چیزی که گفتید مشکلی نیست. یعنی خودش به صورت اتوماتیک دیتابیستون رو شناسایی می کنه، و منم دقیقاً الآن این مشکل رو پیدا کردم، هر زمان بیلد میشه پروژه دوباره دیتابیس به صورت اولش بر می گرده. البته می دونم چرا این مشکل به وجود میاد، به نظرم دلیلش اینه که هر زمان که شما پروژتون رو بیلد می کنید، یه کپی جدید از دیتابیستون میسازه، کافی امتحان کنی، یه رکورد به دیتابیس اصلیتون که داخل فولدر پروژه هست اضافه کنید، هر زمان بیلد کنید اون رکورد ها همیشه هستند، پس نتیجه گیری اخلاقی اینه که دیتابیس کپی میشه، حالا به نظرم باید تنظیمات دیتابیس رو درون پنجره properties دستکاری کنیم که دیتابیس جدیدی نسازه. یا اینکه داده تستون رو داخل دیبی اصلی بسازید. یا اینکه فعلاً با مسیردهی مطلق کار کنید، هر زمان خواستید پروژه رو به استادتون تحویل بدید، ابتدا اون تنظیمات رو تغییر بدید و بعد هم دیتابیس اصلی رو در فولدر دیباگ و یا ریلیز کپی کنید.

بازم اگه کسی هست که بتونه کمکمون کنه ممنون می شیم.

momasa
یک شنبه 03 دی 1391, 15:55 عصر
یک کار دیگه هم به نظرم می تونی انجام بدی، Copy TO output directory = Copy if newer قرار بدی، که هر بار که ران می کنی پروژه رو کپی نکنه.