ورود

View Full Version : مشکل در اتچ کردن دیتابیس در sql express



Ishtar_4552
شنبه 18 شهریور 1391, 22:22 عصر
سلام

من در برنامه ام برای ساخت دیتابیس از sql express مربوط به خود ویژوال استودیو 2010 استفاده کرده ام و موقع ساخت دیتابیسم هم گزینه authentication windows mode را انتخاب کردم ..
حالا می خوام که وقتی کاربر روی سیستم دیگری بخواهد برنامه را اجرا کند پس از نصب برنامه مربوطه ،موقع استفاده از برنامه بتواند با زدن دکمه connect دیتابیس را به برنامه اضافه کند.. ولی با اینکه کانکشن استرینگ را هم درست تعریف کرده ام، موقع تست برنامه و زدن دکمه مربوطه با خطای زیر مواجه می شم :

92559

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

92562

مرتضی تقدمی
شنبه 18 شهریور 1391, 22:33 عصر
سلام
لطفا کانکشن استرینگ مورد استفاده رو قرار بدید.
موفق باشید

Ishtar_4552
یک شنبه 19 شهریور 1391, 08:06 صبح
توی اون نمونه برنامه کانکشن استرینگ رو قرار دادم ، به این صورت:


Data Source=.\SQLEXPRESS;Initial Catalog=Test1;Integrated Security=True;

اتچ کردن برنامه ام هم به این صورت می باشد:

USE master;
EXEC sp_attach_single_file_db @dbname = 'Test1',
@physname = N'Address';

m0hammad_01
یک شنبه 19 شهریور 1391, 12:12 عصر
این کد واسه Attach کردن پایگاه داده هستش.تست شده و جواب میده.این رو امتحان کنید.
به جای MyDB، نام فایل پایگاه دادتون رو قرار بدین.


SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True");
SqlCommand com = new SqlCommand();

com.CommandText = "sp_attach_db @dbname = 'MyDB', " +
" @filename1 = '" + Application.StartupPath + @"\\DataBase\\MyDB.mdf', " +
" @filename2 = '" + Application.StartupPath + @"\\DataBase\\MyDB_log.ldf' ";
com.Connection = con;

try
{
con.Open();
com.ExecuteNonQuery();
con.Close();

MessageBox.Show("پایگاه داده نرم افزار، با موفقیت نصب گردید ", "نصب پایگاه داده نرم افزار", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

catch (Exception ex)
{
MessageBox.Show(ex.Message, "خطا در نصب پایگاه داده", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

m0hammad_01
یک شنبه 19 شهریور 1391, 13:39 عصر
من یه جستجوی اجمالی در این مورد کردم.راه حل های خیلی زیادی گفته شده.احتمال بسیار زیاد مشکل دسترسی User شما به فایل پایگاه داده هست.
روی فایل پایگاه دادتون راست کلیلک کنید و تب Security را انتخاب کنید.دسترسی User خودتون رو به فایل، در تمام حالت ها Allow قرار بدین.
در ضمن در همون جا یک User به نام خود SQLSERVEREXPRESS هست.مطمئن شید که اون هم در تمام موارد دسترسی کامل رو داره (Allow)
اگه وجود هر کدوم وجود نداشت،اون رو اضافه کنید.
تو سیستم شما هم باید مثل شکل زیر باشه،البته با نام User خودتون

92588