PDA

View Full Version : حرفه ای: مشکل در پایگاه داده vs.net 2012



teymoorei
چهارشنبه 17 خرداد 1396, 10:42 صبح
با سلام

دوستان من قبلا با VS 2010 و SqlExpress برنامه نوشتم و مشکلی هم نداشتم .

الان من VS 2012 نصب کردم و SqlExpress نداره حتی SqlExpress رو جدا نصب کردم ولی بازم مشکل داشتم ، یکی از دوستام گفتن از VS 2012 به بعد از LocalDB استفاده میشه .

ممنون میشم بنده رو راهنمایی بفرمایید و اگه ممکنه آموزش های مربوط به LocalDB معرفی کنید .

باتشکر

_behnam_
چهارشنبه 17 خرداد 1396, 20:03 عصر
سلام.
فقط ConnectionString تغییر کرده و روش کار تغییر نکرده که آموزش خاصی بخواد.
یک فایل دیتابیس mdf بسازید توی پروژه و رشته اتصالش رو نکاه کنید متوجه منظورشون میشید.

teymoorei
پنج شنبه 18 خرداد 1396, 12:59 عصر
سلام

مشکل اتصال حل شد فقط موارد زیر باقی مونده هنوز

1- زمانی که میخوام table بسازم مینویسه :


Object refrence not set to an instance of an object

2- برنامه های قبلی رو که کانکشن شون رو تغییر میدم باز ارور زیر رو میده :


An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: The database 'G:\BOOTIK7\BOOTIK\BOOTIK\BIN\DEBUG\DBEHSAN.MDF' cannot be opened because it is version 852. This server supports version 706 and earlier. A downgrade path is not supported.


Could not open new database 'G:\BOOTIK7\BOOTIK\BOOTIK\BIN\DEBUG\DBEHSAN.MDF'. CREATE DATABASE is aborted.


An attempt to attach an auto-named database for file G:\Bootik7\Bootik\Bootik\bin\Debug\DBEhsan.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

3- ضمنا برای setup کردن برنامه چه چیزی برای localdb لازمه ؟

ممنونم

محمد آشتیانی
پنج شنبه 18 خرداد 1396, 19:54 عصر
سلام
1- چه کدی نوشتید؟ شرایط به وجود اومدن این خطا چیه دقیقا؟

2- ببینید ، Sql Server به این صورت هستش که اگر یک دیتابیس در اون ساخته بشه و یا اتچ بشه ، اون دیتابیس دیگه روی Sql Server با نسخه پایین تر کار نمیکنه ، یعنی چطور؟ فرض کنید شما دیتابیستون رو روی نسخه 2012 اتچ کردید ، با این تفاسیر شما امکان این رو ندارید که همون دیتابیس رو به Sql Server 2008 منتقل کنید ، اون اعدادی هم که در خطا میبینید Internal Version هستن برای Sql Server
852 : Sql Server 2016
706 : Sql Server 2012
این یعنی دیتابیس شما روی ورژن 2016 اتچ شده و ورژن کنونی که نصب کردید و میخواید ازش استفاده کنید 2012 هستش.

3- هم می تونید با نرم افزارهای ستاپ ساز (مثل Install Aware) پکیج LocalDB رو داخل ستاپ اضافه کنید تا بصورت اتوماتیک موقع ستاپ نرم افزارتون ، نصب بشه و یا اینکه فایل نصبش رو دانلود کنید و همراه نرم افزارتون ارائه بدید تا روی سیستم مقصد نصب بشه - فایل نصب کم حجمی داره و نصبش نیز سادست

teymoorei
پنج شنبه 18 خرداد 1396, 20:27 عصر
1- چه کدی نوشتید؟ شرایط به وجود اومدن این خطا چیه دقیقا؟

این کانکشنه :

Dim Connection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DBEhsan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")




این یعنی دیتابیس شما روی ورژن 2016 اتچ شده و ورژن کنونی که نصب کردید و میخواید ازش استفاده کنید 2012 هستش.

الان اکه من ویژوال استودیو 2015 نصب کنم مشکل حل میشه ؟


آخه من اون موقع از sqlexpress 2008 استفاده کردم و الان توی این نسخه های جدید اصلا sqlexpress نیست

teymoorei
جمعه 19 خرداد 1396, 16:05 عصر
یه نسخه دیگه از برنامه رو اجرا کردمکه این ارور رو داد :


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)