我想运行时如何调用一段脚本形成数据库,然后再打包?我的脚本是:.sql文件。现在打包时将LMS_Data.mdf与LMS_log.ldf放在了工程中打包的。vs2008+(sql2005+msde=sql2000),其实这样做的原因是防止SQL2000与sql2005有区别,调用脚本就没有事了,那位老大知道,请告诉,先谢过。
解决方案 »
- 存储过程怎样根据字段来合理修改数据
- 刚才问题我没说清楚,现在发贴重问,刚才的贴马上就结
- 新手跪求解法C#.NET
- C# 结构体转byte数组 问题
- C#对AutoCad二次开发的问题
- WMI查询中如果使用了用户级别,应如何书写查询语句
- 如何按回车自动跳道下个text
- "update station set password='1234' where name='123'"有问题吗?
- 取指定的进程的运行路径出现拒绝访问
- Image.FromFile的加载的图片,为什么显示很小的图片。谢谢先。
- C#调试时鼠标指向一个字符串变量的值为(9-5-2),但复制粘贴到记事本中却为(9■5■2),
- 求一条语句的 正解~
建立安装部署项目,在install安装类通过DirectoryEntry 操作IIS实现网站或虚拟目录的配置。
通过执行SQL脚本配置数据库
use master exec sp_attach_db @dbname=N'数据库名 ',@filename1=N'数据库文件地址',@filename2=N'日志文件地址'
或
private void ExecuteSql(string connString,string DatabaseName,string sql)
{
using(SqlConnection conn=new SqlConnection(connString))
{
SqlCommand cmd=new SqlCommand(sql,conn);
conn.Open();
cmd.Connection.ChangeDatabase(DatabaseName);
cmd.ExecuteNonQuery();
conn.Close();
}
}
string connString=string.Format("server={0};user id={1};password={2}",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"]);//根据输入的数据库名称建立数据库
ExecuteSql(connString,"master","create database "+this.Context.Parameters["dbname"]);//调用osql执行脚本
string cmd=string.Format(" -S{0} -U{1} -P{2} -d{3} -i{4}db.sql",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"],this.Context.Parameters["dbname"],this.Context.Parameters["targetdir"]);
System.Diagnostics.Process sqlProcess=new Process();
sqlProcess.StartInfo.FileName="osql.exe";
sqlProcess.StartInfo.Arguments=cmd;
sqlProcess.StartInfo.WindowStyle=ProcessWindowStyle.Hidden;
sqlProcess.Start();
sqlProcess.WaitForExit();//等待执行
sqlProcess.Close();