PDA

View Full Version : سوال: استفاده از sqlexpress و اتصال فایلهای پایگاه داده ی sql به آن



hahaie
شنبه 20 خرداد 1391, 21:02 عصر
سلام.
من sqlserverexpress2008 رو نصب کردم چند گزینه توی منوی programs از منوی start نصب شده اما نمیدونم چطوری فایلهای پایگاه داده(mdf یا log؟) رو بهش متصل کنم.
کمی غیر منطقی به نظر میرسه چون بنظرم پایگاه داده یا همون sql باید فعال باشه و گزینه های نصب شده چیزی که به نظر میرسه میشه پایگاه رو بهش معرفی کرد Import & Export data است.
ضمن اینکه برنامه ی نوشته شده اطلاعاتش در این فایلها باید ثبت شود

MOTO MAN
شنبه 20 خرداد 1391, 21:57 عصر
سلام

شما باید از قسمت start دنبال sql server management studio باشید و سپس آن را باز کنید و تنظیمات آن را انجام دهید و قسمت server name آن را (local) قرار دهید.

سپس از بخش سمت چپ از قسمت object explorer بر روی databeses کلیک راست کنید و attach را انتحاب کنید و سپس از قسمت add ادرس فایل mdf خود را بدهید و تمام.


موفق باشید...

behzadkhatari
شنبه 20 خرداد 1391, 23:05 عصر
دوست عزیز sqlexpress هیچ ابزاری برای اینکار نداره. باید به صورت کد نویسی اینکارو انجام بدید و از دستورات backup , restore استفاده کنید

hahaie
یک شنبه 21 خرداد 1391, 16:32 عصر
MOTO MAN عزیز MANAGMENT فکر نمیکنم مربوط به EXPRESS باشه.
behzadkhatari دلبندم restore و backup که مال بک آپ گیری و بازیابیه،ربطی داره؟میشه بیشتر توضیح بدی.ضمن اینکه مثلا من برنامه(پروژه با سی شارپ) رو نصب کردم حالا میخوام برنامه با پایگاه داده ی خودش در ارتباط باشه گفتم از sqlexpress استفاده کنم اما نمیدونم چطوری؟

behzadkhatari
یک شنبه 21 خرداد 1391, 21:37 عصر
ابتدا از بانکتون بک آپ بگیرید بعد از دستور زیر در برنامتون استفاده کنید. من خودم تو پروژه ای که چند سال پیش انجام دادم همین کارو میکردم
ازین دستور میتونید برای restore کردن دیتابیس استفاده کنید. میتونید از همین روش برای گرفتن بک آپ استفاده کنید.
com.CommandText = "restore database dbname from disk='" + Application.StartupPath + "\database.bak'"
com.ExecuteNonQuery();

ببنید دوست عزیز sqlexpress نسخه رایگان sql server هستش به همین خاطر هیچ ابزار مدیریتی مثل managment studio نداره و شما باید برای کار با دیتابیس به صورت کدنویسی عمل کنید.
موفق باشید

veniz2008
یک شنبه 21 خرداد 1391, 22:16 عصر
ابتدا از بانکتون بک آپ بگیرید بعد از دستور زیر در برنامتون استفاده کنید. من خودم تو پروژه ای که چند سال پیش انجام دادم همین کارو میکردم
ازین دستور میتونید برای restore کردن دیتابیس استفاده کنید. میتونید از همین روش برای گرفتن بک آپ استفاده کنید.
com.CommandText = "restore database dbname from disk='" + Application.StartupPath + "\database.bak'"
com.ExecuteNonQuery();

ببنید دوست عزیز sqlexpress نسخه رایگان sql server هستش به همین خاطر هیچ ابزار مدیریتی مثل managment studio نداره و شما باید برای کار با دیتابیس به صورت کدنویسی عمل کنید.
موفق باشید
دوست عزیز میشه یه کم بیشتر توضیح بدید،مثلا این کد رو باید کجا بنویسیم تا پایگاه restore بشه؟، اگه ممکنه کدهای بک آپ و restoreرو بصورت کامل بذارید،چون این سوال خیلی هاست

Esmail Solhkhah
دوشنبه 22 خرداد 1391, 02:07 صبح
کمی غیر منطقی به نظر میرسه چون بنظرم پایگاه داده یا همون sql باید فعال باشه

ابزار مدیریتی Management Studio رو با SQL SERVER اشتباه نگیرید، SQL SERVER بیسش یه سرویس ویندوز هست و Management Studio یک ابزار گرافیکی برای ارتباط راحت تر با این سرویس دهنده در عمل وقتی شما دارید یه دیتابیس اتچ میکنید یا ایجاد میکنید یا هر کاری با Management Studio انجام میدید نهایتا اینا بصورت کامند به سرویس دهنده پاس میشن و اونه که کارا رو انجام میده ، این دید درستی نیست که فکر کنیم خود Management Studio داره دیتابیس میسازه ، اتچ میکنه ، کوری میگریده و ...


دوست عزیز sqlexpress هیچ ابزاری برای اینکار نداره. باید به صورت کد نویسی اینکارو انجام بدید و از دستورات backup , restore استفاده کنید
بله درسته ورژنهای express فاقد Management Studio هستند ولی میتونید Managemet Studio مربوطه رو رایگان از سایت عمو گیس دانلود (http://www.microsoft.com/en-us/download/details.aspx?id=7593) کنید.
اینم بگم که ورژنهای Express with Advanced Services (http://www.microsoft.com/en-us/download/details.aspx?id=1842) شامل Management Studio هم هستن.

موفق باشید.

hahaie
پنج شنبه 25 خرداد 1391, 17:04 عصر
آقایون طبق اطلاعاتی ک من دارم نیازی ب استفاده از بک آپ و رستور و اینجور چیزها ک دوستان میگند نیست.خیلی راحت میشه یه datasource که conectionstring رو میگیره تعریف کرد و ادامش رو نمیدونم...:لبخند:

barnamenevisforme
پنج شنبه 25 خرداد 1391, 17:20 عصر
سلام
من یه برنامه نوشتم واسه attach کردن database و موقع نصب برنامه اونم اجرا میکنم تا database attach بشه.انشالله سر فرصت اینجا میذارمش.

آقایون طبق اطلاعاتی ک من دارم نیازی ب استفاده از بک آپ و رستور و اینجور چیزها ک دوستان میگند نیست.خیلی راحت میشه یه datasource که conectionstring رو میگیره تعریف کرد و ادامش رو نمیدونم...:لبخند:
اون connectionstring بیشتر واسه نسخه compact استفاده میشه و در واقع attach شدن به صورت لحظه ای هست(تا زمانی که برنامه در جال اجراست)وبرای یه سیستم جواب میده.-attach database file:-

barnamenevisforme
پنج شنبه 25 خرداد 1391, 19:52 عصر
برای معرفی یک دیتابیس به sqlserver از همون کانکشن استرینگ استفاده میکنند به همین دلیل نیازی به معرفی دیگه ای نداره(در اصل کانکشن استرینگ این وظیفه رو به عهده میگیره). پس بعد از طراحی دیتابیس در management studio و یا در خود ویژوال استادیو و تنظیم درست کانکشن استرینگ اگر مشکلی در کار برنامه نباشه میتونید مطمئن باشید که اتصال به دیتابیس از طریق sqlserver بدرستی انجام شده.
سلام
حتی واسه استفاده از database در سیستمی به غیر از server؟
اگه این طوره،پس میتونیم امتحان کنیم.(حتی با وجود در دسترس نبودن یک سیستم شبکه ای).
بعد از نصب برنامه ، به مسیر فایل های database میریم و اونا رو پاک میکنیم.(البته در حالتی که application ما در حال اجرا نباشه)ببینیم آیا sqlexpress به ما اجازه میده اونا رو پاک کنیم؟اگه جواب مثبت بود پس database به sqlexpress ما attach نشده.

hahaie
جمعه 26 خرداد 1391, 08:23 صبح
سلام.
من کانکشن استرینگ رو توی رویداد load فرم اصلی نوشتم.حتی توی سیستم دیگه sqlExpress2008 رو نصب کردم.اما وقتی برنامه ی نصب شده رو اجرا میکنم خطای زیر رو میده:
An attempt to attach an auto-named database for file c:\programfiles\tamrin\words.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share
دستوری هم که نوشتم ب صورت زیر:
Con.conectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=.\\words.mdf ;Integrated Security=True;User Instance=True";
con.Open();
لازمه بگم ک برنامه روی سیستم local هست و تحت شبکه نیست.
از دوستان خواهش دارم این مشکل برام حیاتیه کمک کنند.ممنون
اگه نمونه برنامه دارید ک این مورد درش به کار رفته بذارید
راستی بانک های من توسط Sql2005 طراحی شده اما توی سیستم طرف sqlExpress2008 نصب کردم

hahaie
جمعه 26 خرداد 1391, 10:55 صبح
ممنون از همه دوستان.همون دستور بالایی رو نوشتم به خود sqlServer ور رفتم دیگه خطای بالایی رو نداد حتی با کپی گرفتن از خود فایل mdf که انجام نمیشه فهمیدم ارتباط برقرار میشه اما مشکل اینه ک داده ها رو از جدولها نمیتونه بخونه.
کسی میدونه مشکل از چیه؟

hahaie
جمعه 26 خرداد 1391, 12:20 عصر
ممنون دوست عزیز:دستور سلکتم درسته
توضیح اینکه وقتی با لینکیو سلکتی رو انجام میدم پیغام خطای زیر داده میشه:
Cannot open database "databasename"requested by the login.The login failed.Login failed for user "computername\Administrator"

barnamenevisforme
جمعه 26 خرداد 1391, 15:53 عصر
سلام
دوست عزیز به نظر میرسه توی این موضوع شما خیلی به زخمت افتادید.
یه راه حل ساده ولی پر کاربرد بهتون پیشنهاد میدم اون کارو انجام بدید.وقتی مشکل پروژتون حل شد به مسائلی مثل شبکه کردن برنامه بپردازید.
88286
با این کار هم dataset به برنامه اضافه شده و هم با مراجعه به منوی project/project name properties میتونید connectionstring ایجاد شده رو روئیت،کپی و یا test کنید.
88287
هر جای برنامه هم خواستی از connection string استفاده کنی،از این عبارت استفاده کن.
project name.properties.settings.Namehadatabase_DataConnec tionString;
میمونه کارای موقع نصب،موقع درست کردن فایل setupاز منوی project propertiesوارد بخش prequisites میشی و sqlexpress رو به برنامه اضافه میکنی.با این کار sqlexpress هم جز برنامه setup قرار میگیره.

hahaie
جمعه 26 خرداد 1391, 17:02 عصر
سلام.
دوست عزیز ضمن اینکه روش شما رو امتحان کردم connectionString مشکلی نداره ارتباط با پایگاه داده برقرار میشه چون امکان کپی گرفتن از اون وجود نداره اما نمیتونه پایگاه داده رو باز کنه و باز پیغام خطای بالا رو ک گفتم میده.
دوستان با این پیغام خطا که بالا هست آشنا نیستند؟