PDA

View Full Version : سوال: مشکل در connect شدن و attach کردن database در SqlServer



sajadsobh
چهارشنبه 03 مهر 1392, 10:50 صبح
سلام خدمت همه دوستان عزیز.
همگی خسته نباشید.
من یه برنامه نوشتم که که به یه دیتابیس وصل میشه و جوری هم نوشتم که وقتی دیتابیس attach نشده دیتابیس رو به sql وصل میکنه.
همه چیز هم روی سیستم خودم روبراهه و همه اینکارا که گفتم رو انجام میده ولی مشکل اینجاست که وقتی میخوام این پروژه رو روی سیستم دیگه چک بکنم (روی همون ورژن ویژوال و اسکیو ال) اصلاً به دیتابیس attach نمیشه.
connectionstring ای که برای وصل شدن به دیتابیس استفاده میکنم اینه:

SqlConnection con = new SqlConnection("Server=" + Environment.MachineName + "; Database=MyGym; Integrated Security=True");

برای اتچ کردن دیتابیس هم از storedprcedure خود sqlserver استفاده کردم یعنی یه متد نوشتم یه این شکل:

public void Attach_DB(string DB_Name, string MDF_Directory, string LDF_Direstory)
{
SqlCommand cmd = new SqlCommand("sp_attach_db", sqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@dbname", DB_Name);
cmd.Parameters.AddWithValue("@filename1", MDF_Directory);
cmd.Parameters.AddWithValue("@filename2", LDF_Direstory);
sqlCon.Open();
cmd.ExecuteNonQuery();
sqlCon.Close();
}

بازم میگم این برنامه الان روی سیستم خودم خیلی راحت اجرا میشه و مشکلی نداره. دیتابیس رو راحت اتچ میکنه و کارش رو انجام میده ولی نمیدونم چرا روی سیستم دیگه جواب نمیده :افسرده: این چند روزه هم بدجور رفته رو اعصابم :ناراحت:

آهان اینم بگم از SQL EXPRESS استفاده نمیکنما، میخوام فقط روی یه سیتم دیگه پروژه رو بالا بیارم و چک کنم. همین!
ممنون میشم اگه اساتید کمک کنن و منو از سردرگمی نجات بدن :لبخندساده:

behzadkhatari
چهارشنبه 03 مهر 1392, 11:42 صبح
شاید مسیری که میخوای ذخیره کنی متفائت باشه. بک آپ بگیر بعد restore کنی بهتره

sajadsobh
چهارشنبه 03 مهر 1392, 11:51 صبح
شاید مسیری که میخوای ذخیره کنی متفائت باشه. بک آپ بگیر بعد restore کنی بهتره

اینم دایرکتوری فایل های مورد نیاز:

string mdf_Directory = Path.GetFullPath(Environment.CurrentDirectory + @"\Database");
string ldf_Directory = Path.GetFullPath(Environment.CurrentDirectory + @"\Database");

دو تا فایل دیتابیس هم توی پوشه bin\debug ذخیره کردم.
یعنی مشکل از اینه؟!

hamid_hr
چهارشنبه 03 مهر 1392, 12:00 عصر
ببخشدي يه سوال دارم
قبل از اينكه ديتابيس MeGym داخل sql ساخته بشه چطور ميتونين از اين رشته اتصال استفاده كنين
SqlConnection con = new SqlConnection("Server=" + Environment.MachineName + "; Database=MyGym; Integrated Security=True");
اينجا ديتابيسو مشخص كردين كه MyGym باشه

sajadsobh
چهارشنبه 03 مهر 1392, 12:21 عصر
ببخشدي يه سوال دارم
قبل از اينكه ديتابيس MeGym داخل sql ساخته بشه چطور ميتونين از اين رشته اتصال استفاده كنين
SqlConnection con = new SqlConnection("Server=" + Environment.MachineName + "; Database=MyGym; Integrated Security=True");
اينجا ديتابيسو مشخص كردين كه MyGym باشه

یادم رفت بگم. واسه اتچ کردن از master استفاده کردم. با این connectionstring:

SqlConnection con = new SqlConnection("Server=" + Environment.MachineName + "; Database=master; Integrated Security=True");

hamid_hr
چهارشنبه 03 مهر 1392, 12:26 عصر
خطا ميده يا نه؟ اگه ميده خطاش چيه؟
شايد يوزرتون administrator نيس اجازه دسترسي نداري

sajadsobh
چهارشنبه 03 مهر 1392, 13:11 عصر
میگه که Login failed for user Admin-VAIO\Admin
یعنی لاگین نمیشه دیگه. دارم دیوانه میشم من :ناراحت:

hamid_hr
چهارشنبه 03 مهر 1392, 13:21 عصر
ببينين اصلا با sqlmanager متصل ميشه ؟

sajadsobh
چهارشنبه 03 مهر 1392, 13:59 عصر
یه سوال؟! ممکنه از dbowner باشه. چون dbowner واسه دیتابیسم یوزر خودمه. میگم نکنه واسه خاطر اینه؟!

hamid_hr
چهارشنبه 03 مهر 1392, 15:14 عصر
اره ممكنه
برو يه يوزر و پس درست كن با اون بهش متصل شو
ببين درست ميشه

sajadsobh
چهارشنبه 03 مهر 1392, 16:49 عصر
همین کارو کردم.
وفتی که با یه user دیگه وارد میشم میخوام دیتابسی رو attach کنم نمیشه. احتمالاً از همونه مشکل. چه باید کرد؟

hamid_hr
چهارشنبه 03 مهر 1392, 17:00 عصر
برا sqlserver يوزر و پسوورد تعريف كن با نقش sysadmin
بعد تو نرم افزار از اين يوزر و پسووردها استفاده كن

sajadsobh
چهارشنبه 03 مهر 1392, 23:43 عصر
برا sqlserver يوزر و پسوورد تعريف كن با نقش sysadmin
بعد تو نرم افزار از اين يوزر و پسووردها استفاده كن

همین کار رو هم کردم. بازم توی سیستم خودم کار میکنه ولی توی همین سیستم با یه user دیگه که میرم برنامه رو باز میکنم ارور میده:


http://upload.tirage24.com/images/10702194806678215658.jpg

sajadsobh
جمعه 05 مهر 1392, 00:48 صبح
دیگه خل شدم من :افسرده: