PDA

View Full Version : سوال: چگونه attach کردن فایل های sql به sqlserver توسط کد



ibd_iran
پنج شنبه 03 تیر 1389, 12:44 عصر
باسلام

میخواستم ببن از چی طریقی می شود فایل های mdf و log آن توسط کد C# به sqlserver اتصال بدام که نیاز نباشه به sql enterpirce برم

ibd_iran
پنج شنبه 03 تیر 1389, 13:34 عصر
سلام جستجو که کردام مثال های زیاد با دلفی است آیا روش که تو دلفی بود تو C# اجرا کنم جواب می دهد

teardrop
پنج شنبه 03 تیر 1389, 16:39 عصر
به نام خدا

حتما باید SQLEXPRESS رو نصب کنی


SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=H:\\c#\\word s.mdf;Integrated Security=True;User Instance=True";

ibd_iran
پنج شنبه 03 تیر 1389, 16:54 عصر
از کمکتان ممنون این روش بلد هستم این روش برای SQLSERVER جواب نمی دهد و در همان SQLEXPRESS مشکل های زیاد داره که بهتر کمتر این گونه انجام دهید

ibd_iran
پنج شنبه 03 تیر 1389, 20:07 عصر
SqlConnection con = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.\SQLEXPRESS");

SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "sp_attach_db";
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddWithValue("@dbname", openFileDialog1.SafeFileName.Split('.')[0]);// اسم فایل مشخص می کنه
com.Parameters.AddWithValue("@filename1", openFileDialog1.FileName);//فایل mdf مشخص می کنه
com.Parameters.AddWithValue("@filename2", openFileDialog2.FileName);//فایل log مشخص می کنه
con.Open();
com.ExecuteNonQuery();
con.Close();




از این کد استفاده کردام جواب داد ممنون از دوستان vb.net

meysamkarimi
جمعه 04 تیر 1389, 00:26 صبح
فایلهای مربوط به دیتابیسمان را یعنی پسوندهای MDF. و LDF. را در فولدری به نام Data قرار داده و در جایی که فایل exe برنامه وجود دارد قرار می دهیم - چون در تمام SQL Server ها دیتابیس Master وجود دارد ما با متصل شدن به دیتابیس Master کد Attach را execute میکنیم .

فرض میکنیم نام DataBase ما SaynaDB است در یک رویداد خاص مانند کلیک دکمه می نویسیم :




private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local);Initial Catalog=master;Integrated Security=True";
con.Open();

string str = "use master;" +
"EXECUTE sp_attach_db @dbname = N'SaynaDB' , " +
" @filename1 = N'" + System.Environment.CurrentDirectory + "\\Data\\SaynaDB.mdf'," +
"@filename2 = N'" + System.Environment.CurrentDirectory + "\\Data\\SaynaDB_log.ldf'" ;

SqlCommand cmd = new SqlCommand(str,con);
cmd.ExecuteNonQuery();
con.Close();


;(" شد Attach دیتابیس با موفقیت") MssageBox.Show
{

catch (Exception x)
{
if(x.Message.IndexOf("already exists")>=0)

;(" دیتابیس موجود است").MssageBox.Show
else
MessageBox.Show(x.Message);
}
}