PDA

View Full Version : Attach کردن DataBase به برنامه نصبی



boof1363
دوشنبه 08 بهمن 1386, 15:23 عصر
دوستان گرامی سلام
من یه برنامه با C# نوشتم که یه DataBase ولی نمی دونم چطوری این کارو انجام بدم که بعد از نصب برنامه دیگه نیاز به این نباشه که DataBase ام رو تو SqlServer،Attach کنم.ممنون میشم راهنمایی کنید

Mahdi Salami
پنج شنبه 08 مرداد 1388, 17:12 عصر
سلام.
دوست عزيز، چند وقت پيش من هم مشكل شما را داشتم. با جستجو در سايت ميتونيد راه حل رو پيدا كنيد. ولي بهترين راه ارائه شده اينه كه در اول اجراي برنامه، يك Connection به DB بزني يا با استفاده از دستورات SQL، دنبال DB خودت بگردي. اگه پيداش نكردي يا Connetion خطا داد، با دستورات مربوطه، ديتابيس خودت رو Attach كني.

marzieh2007
جمعه 09 مرداد 1388, 20:51 عصر
ميشه اين كدهارو برايه من بنويسيد خيلي بهش احتياج دارم

HDDSoft2001
شنبه 10 مرداد 1388, 03:11 صبح
public bool AttachDB_Script(string ServerName,
string mdfPhysicalPath, string OtherConnectionStr)
{
SqlConnectionStringBuilder sqlConBuild = new SqlConnectionStringBuilder(
"Data Source=" + ServerName + ";"
+ "Initial Catalog=" + Objects.ModuleBO._DBMaster + ";"
+ OtherConnectionStr);

SqlCommand sql_Cmd = new SqlConnection(sqlConBuild.ConnectionString).Create Command();
sql_Cmd.CommandType = CommandType.Text;
sql_Cmd.CommandText =
string.Format("CREATE DATABASE [{0}] ON " +
@"( FILENAME = '{1}' )FOR ATTACH go ",
Objects.ModuleBO._DBName, mdfPhysicalPath);

bool attached = true;
try { sql_Cmd.Connection.Open(); sql_Cmd.ExecuteNonQuery(); }
catch (Exception e) { attached = false; throw e; }
finally
{
sql_Cmd.Connection.Close();
sql_Cmd.Connection.Dispose();
if (attached)
{
sqlConBuild.InitialCatalog = Objects.ModuleBO._DBName;

BaseDefinetionDAL.Sql = new SqlService(sqlConBuild.ConnectionString);
// -------------------------------------------------------------
Properties.Settings.Default.ConnectionString = sqlConBuild.ConnectionString;
WriteConnectionStringToXML(sqlConBuild.ConnectionS tring);
}
}
return attached;
}

marzieh2007
دوشنبه 12 مرداد 1388, 21:49 عصر
مي تونم يه خواهشي بكنم؟لطفا يه كم در مورد كارهايي كه اين كدها مي كننند توضيح بدين ممنون ميشم:لبخندساده:

shocraneh
چهارشنبه 14 مرداد 1388, 11:29 صبح
if (attached)
{
sqlConBuild.InitialCatalog = Objects.ModuleBO._DBName;

BaseDefinetionDAL.Sql = new SqlService(sqlConBuild.ConnectionString);
// -------------------------------------------------------------
Properties.Settings.Default.ConnectionString = sqlConBuild.ConnectionString;
WriteConnectionStringToXML(sqlConBuild.ConnectionS tring);
}




من با vb.net کار می کنم و این تکه کد رو متوجه نشدم

HDDSoft2001
جمعه 16 مرداد 1388, 18:59 عصر
با سلام


این قسمت ها مربوط به برنامه خودم هست. شما فقط قسمت زیر را در نظر بگیرید.



SqlConnectionStringBuilder sqlConBuild = new SqlConnectionStringBuilder(
"Data Source=" + ServerName + ";"
+ "Initial Catalog=" + DBMasterName + ";"
+ OtherParamConnectionStr);

SqlCommand sql_Cmd = new SqlConnection(sqlConBuild.ConnectionString).Create Command();
sql_Cmd.CommandType = CommandType.Text;
sql_Cmd.CommandText =
string.Format("CREATE DATABASE [{0}] ON " +
@"( FILENAME = '{1}' )FOR ATTACH go ",
DBName, mdfPhysicalPathDBName
);