سلام
عضر خواهی میکنم، مجدد چندروزی خیلی سرم شلوغ بود ...
نوشته شده توسط:
booysusa
ولی دستور Delete ... بنظرتون مشکل از کجاست؟
مطمئن شوید مقدار this.IdKartMeli صحیح و کامل پر شده باشد و عددش در دیتابیس وجود داشته باشد.
درصورتیکه مشکلی مشاهده نکردید، دستور Delete تان را به دو دستور مستقل برای دو جدول بشکنید.
البته Delete را کلا میتوانید به خود دیتابیس هم واگذار کنید.
کافی است درون SQL-Server بین دو جدول Relation ایجاد کنید.
درهنگام ایجاد Relation گزینه ای مشاهده میکنید به نام Delete Action که رفتار دیتابیس با حذف سطر پدر(Contact) را مشخص میکند.
کافی است گزینه Cascade (حذف آبشاری) را انتخاب کنید.
آنگاه با حذف Contact خود دیتابیس سطرهای KartMeli مرتبط را حذف میکند.
این روش خیلی دقیق تر و مطمئن تر است.
در صورت استفاده از این روش ، کلا دیگری نیازی به اجرای دستی دستور Delete دوم نخواهید داشت.
نوشته شده توسط:
booysusa
الان هرکاری میکنم حتی با خود برنامه ویژوال استودیو از قسمت Server Explorer هم اتچ نمیشه
SQLServer LocalDB, Express قابلیتی دارند که اجازه میدهند دیتابیس را بدون Attach درون برنامه استفاده کنید.
ولی در شرایط واقعی کار با دیتابیس و شبکه و... دیتابیس باید Attach شود.
وقتی دیتابیس Attach شود دو-سه اتفاق رخ میدهد.
اول) تا وقتی دیتابیس Attach است، از طریق ویندوز و فایلی نمیتوانید به فایل دیتابیس دسترسی داشته باشید.
یعنی حتی امکان کپی کردن فایل را هم نخواهید داشت.
دوم) وقتی دیتابیس Attach شود نسخه فایل آن به نسخه SQL-Server جاری ارتقا پیدا کرده و بروز میشود و دیگر در نسخه های پایین تر باز نخواهد شد.
یعنی اگر یکبار دیتابیس را در SQL2017 بیاورید و Attach کنید، دیگر آن دیتابیس در SQL2014 قابل Attach نخواهد بود.
سوم) مجوزهای NTFS روی فایل مربوطه تغییر خواهند کرد شما در استفاده از SSMS 17 میتوانستید از همان نسخه SQLServer ای که VS201X استفاده میکرد، شما هم استفاده میکردید.
ولی بنظر میرسد با نسخه بالاتری Attach کرده اید.
اما حالا ... !
بروید داخل MyComputer و ببینید میتوانید فایل دیتابیس را کپی کنید یا خیر ؟!
اگر فایل کپی نشد و خطا داد، دیتابیس شما همچنان Attach است و باید Detach کنید.
یا میتوانید به همین صورت Attach فعلی ، هم درون VS201X و هم برنامه تان استفاده کنید ، اگر نیاز است توضیح دهم ... اگر فایل کپی شد و خطا نداد، احتمالا Version دیتابیس تان ارتقا یافته و زیادتر شده و دیگر به صورتی که قبلا عمل میکردید قابل استفاده نیست.
فایلش را برایم آپلود کنید تا نسخه اش را برایتان کاهش دهم.
یا میتوانید از این به بعد با همان نسخه جدیدتری که در رایانه تان نصب است و در SSMS استفاده کردید، هم در VS201X و هم در برنامه تان کار کنید ، اگر نیاز شد توضیح میدهم ... شما آزمایش فوق را انجام دهید تا
الف) ببینیم مشکل از Attach است یا Version
ب) و بگویید میخواهید به حالت قبل برگردد یا همینطوری ادامه دهید
تا بعدش را توضیح دهم و با هم حلش کنیم.
موفق باشید.