急~~怎样在安装程序时程序自动把sql数据库附加进去啊!! 做了一个程序,用c#部署做的,用到了sql数据库,但是安装程序后还得手动把数据库附加进去,我想问怎样才能在安装程序时它自动把数据库附加进去啊?????????????????得写数据库脚本语言吗??请各位高手指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果既有mdf文件,又有LOG文件,则用存储过程 EXEC sp_attach_db @dbname = N'xx', @filename1 = N'c:\mssql7\data\xx.mdf', @filename2 = N'c:\mssql7\data\xx_log.ldf' 如果只有一个mdf文件则: EXEC sp_detach_db @dbname = 'xx' EXEC sp_attach_single_file_db @dbname = 'xx', @physname = 'c:\mssql7\data\xx.mdf' /// <summary> /// 附加数据库 /// </summary> /// <param name="strCon">连接字符串</param> /// <param name="DBName">要生成的数据库名</param> /// <param name="strMdf">mdf文件位置</param> /// <param name="strLdf">ldf文件位置</param> /// <returns></returns> public bool attachDB(string strCon,string DBName,string strMdf,string strLdf) { bool bl=true; try { cnn.ConnectionString=strCon; if (cnn.State!=ConnectionState.Open) cnn.Open(); cmd.Connection=cnn; cmd.CommandText=@"sp_attach_db"; cmd.Parameters.Add(new OleDbParameter("@dbname",OleDbType.VarChar)); cmd.Parameters["@dbname"].Value=DBName; cmd.Parameters.Add(new OleDbParameter("@filename1",OleDbType.VarChar)); cmd.Parameters["@filename1"].Value=strMdf; cmd.Parameters.Add(new OleDbParameter("@filename2",OleDbType.VarChar)); cmd.Parameters["@filename2"].Value=strLdf; cmd.CommandType=CommandType.StoredProcedure; cmd.ExecuteNonQuery(); } catch { bl=false; } finally { cnn.Close(); } return bl; } 把数据库用backup database备份下来。安装后执行restore database。 长见识了,呵呵,多谢 LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 自定义 MSI 安装http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx呵呵! 关于正则匹配问题 关于GridView的数据绑定 请教问题,灰常杯具- - 求分割txt内容读到textbox和combobox的方法 try.....catch怎么用? 又问一个简单的问题 C#2005得到SQL2005 返回的字符串 关于提示用户关闭窗口~! 关于图形控件,搞这方面的朋友可以看看或许能有点帮助。 webBrowser 获取COOKIE 问题 多线程的问题,好多天了还没解决,郁闷惨了,:(!! 问一个超菜的问题!关于网站源代码的! 移动文件夹问题,怎么不能从不同的区中移动
EXEC sp_attach_db @dbname = N'xx',
@filename1 = N'c:\mssql7\data\xx.mdf',
@filename2 = N'c:\mssql7\data\xx_log.ldf'
如果只有一个mdf文件则:
EXEC sp_detach_db @dbname = 'xx'
EXEC sp_attach_single_file_db @dbname = 'xx',
@physname = 'c:\mssql7\data\xx.mdf'
/// 附加数据库
/// </summary>
/// <param name="strCon">连接字符串</param>
/// <param name="DBName">要生成的数据库名</param>
/// <param name="strMdf">mdf文件位置</param>
/// <param name="strLdf">ldf文件位置</param>
/// <returns></returns>
public bool attachDB(string strCon,string DBName,string strMdf,string strLdf)
{
bool bl=true;
try
{
cnn.ConnectionString=strCon;
if (cnn.State!=ConnectionState.Open)
cnn.Open();
cmd.Connection=cnn;
cmd.CommandText=@"sp_attach_db";
cmd.Parameters.Add(new OleDbParameter("@dbname",OleDbType.VarChar));
cmd.Parameters["@dbname"].Value=DBName;
cmd.Parameters.Add(new OleDbParameter("@filename1",OleDbType.VarChar));
cmd.Parameters["@filename1"].Value=strMdf;
cmd.Parameters.Add(new OleDbParameter("@filename2",OleDbType.VarChar));
cmd.Parameters["@filename2"].Value=strLdf; cmd.CommandType=CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
catch
{
bl=false;
}
finally
{
cnn.Close();
}
return bl; }
安装后执行restore database。
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx