C#程序打包(安装,卸载)问题?
发表在C#图书答疑
2008-11-06
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
能否在打包时,把SQL2005数据库服务器一起打包进去,安装后不需要再安装数据库服务器了,一步到位!
另外安装类怎么修改?
另外安装类怎么修改?
精彩评论 11
2008-12-04
8L
public override void Install(IDictionary stateSaver)
{
base.Install (stateSaver);
//获取安装过程中的文本框A中的文本内容
string name = Context.Parameters["name"];
string pwd = Context.Parameters["pwd"];
//获得安装路径
string path = Context.Parameters["targetdir"];
//开启SQL服务器
Process.Start("sc"," start mssqlserver");
//连接数据库
string sql = string.Format("server=.;database=master;uid={0};pwd={1}",name,pwd);
SqlConnection con = new SqlConnection(sql);
try
{
SqlCommand com = new SqlCommand();
com.Connection = con;
//查询是否存在该数据库
com.CommandText = "select count(*) from sysdatabases where name='TestDB'";
con.Open();
int i = int.Parse(com.ExecuteScalar().ToString());
if (i > 0)
{
com.CommandText = "drop database TestDB";
com.ExecuteNonQuery();
}
//执行附加数据库文件的存储过程
com.CommandText = "sp_attach_db";
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@dbname","Testdb");
com.Parameters.Add("@filename1",path + "\\TestDB_Data.MDF");
com.Parameters.Add("@filename2",path + "\\TestDB_Log.LDF");
com.ExecuteNonQuery();
con.Close();
}
finally
{
con.Close();
}
}
其中Process.Start("sc"," start mssqlserver");里"sc"是什么,Process这是什么?
{
base.Install (stateSaver);
//获取安装过程中的文本框A中的文本内容
string name = Context.Parameters["name"];
string pwd = Context.Parameters["pwd"];
//获得安装路径
string path = Context.Parameters["targetdir"];
//开启SQL服务器
Process.Start("sc"," start mssqlserver");
//连接数据库
string sql = string.Format("server=.;database=master;uid={0};pwd={1}",name,pwd);
SqlConnection con = new SqlConnection(sql);
try
{
SqlCommand com = new SqlCommand();
com.Connection = con;
//查询是否存在该数据库
com.CommandText = "select count(*) from sysdatabases where name='TestDB'";
con.Open();
int i = int.Parse(com.ExecuteScalar().ToString());
if (i > 0)
{
com.CommandText = "drop database TestDB";
com.ExecuteNonQuery();
}
//执行附加数据库文件的存储过程
com.CommandText = "sp_attach_db";
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@dbname","Testdb");
com.Parameters.Add("@filename1",path + "\\TestDB_Data.MDF");
com.Parameters.Add("@filename2",path + "\\TestDB_Log.LDF");
com.ExecuteNonQuery();
con.Close();
}
finally
{
con.Close();
}
}
其中Process.Start("sc"," start mssqlserver");里"sc"是什么,Process这是什么?