其实现在软件或web应用程序好多都要sql server, 本来对程序员用企业管理器就可以附加进去;
这个附加器打开web页而就可以进行附加,只要把该页嵌入到站点下,就可以实现与企业管理器相同的功能!
该附加器主要针对mdf和日志文件进行附加;
只需选择mdf日志文件程序自动查找!

完整代码
源代码下载
1
1using System;
2
2using System.Data;
3
3using System.Configuration;
4
4using System.Web;
5
5using System.Web.Security;
6
6using System.Web.UI;
7
7using System.Web.UI.WebControls;
8
8using System.Web.UI.WebControls.WebParts;
9
9using System.Web.UI.HtmlControls;
10
10using System.Data.SqlClient;
11
11using System.IO;
12
12public partial class _Default : System.Web.UI.Page
13
13
{
14
14 public string sqlServer;
15
15 public string uid;
16
16 public string pwd;
17
17 public string sqlstr;
18
18 protected void Page_Load(object sender, EventArgs e)
19
19
{
20
20
21
21 }
22
22 protected void btnStup_Click(object sender, EventArgs e)
23
23
{
24
24 string fileExtend = Path.GetExtension(File_MDF.PostedFile.FileName);//获取扩展名
25
25 string file_Name = Path.GetFileName(File_MDF.PostedFile.FileName); //获取文件名
26
26
27
27 if (fileExtend.ToUpper().CompareTo(".MDF") == 0)
28
28
{
29
29 // Response.Write(fileExtend.ToString()+"<br>名:"+file_Name.ToString()+"<br>"+File_MDF.Value);
30
30 string fileName=file_Name.Substring(0,file_Name.LastIndexOf("_",file_Name.Length));//得到正确名称
31
31 string logname = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_Log.LDF";
32
32 string logname1 = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_log.ldf";
33
33 if (File.Exists(logname)||File.Exists(logname1))
34
34
{
35
35 if (rdosql.Checked)
36
36
{
37
37 sqlServer = "server=" + txtServer.Text + ";User id=" + txtuid.Text + ";Pwd=" + txtpwd.Text + "";
38
38 }
39
39 else
40
40
{
41
41 sqlServer = "server=" + txtServer.Text + ";uid="+uid+"";
42
42 }
43
43 SqlConnection sqlCon = new SqlConnection(sqlServer);
44
44 sqlCon.Open();
45
45 try
46
46
{
47
47 string str = "EXEC sp_attach_db @dbname=N'" + fileName + "',@filename1=N'" + File_MDF.Value + "',@filename2=N'" + logname + "'";
48
48 SqlCommand cmd = new SqlCommand(str, sqlCon);
49
49 cmd.ExecuteNonQuery();
50
50 }
51
51 catch (SqlException exc)
52
52
{
53
53 if (chkAppend.Checked)
54
54
{
55
55 SqlCommand cmd1 = new SqlCommand("EXEC sp_detach_db @dbname='" + fileName + "';" + "EXEC sp_attach_single_file_db @dbname='" + fileName + "',@physname='" + File_MDF.Value + "'", sqlCon);
56
56 cmd1.ExecuteNonQuery();
57
57 Response.Write("<script>alert('数据附加成功!');</script>");
58
58 }
59
59 else
60
60
{
61
61 Response.Write("<script>alert('数据库未能安装成功 提示:将原有的数据库分离');</script>");
62
62 }
63
63 }
64
64 finally
65
65
{
66
66 if (sqlCon.State == ConnectionState.Open)
67
67 sqlCon.Close();
68
68 //搞定,收工!
69
69 }
70
70
71
71 }
72
72 else
73
73
{
74
74 Response.Write("<script>alert('警告,找不到相应的日志文件!');</script>");
75
75 }
76
76 }
77
77 else
78
78
{
79
79 Response.Write("<script>alert('选择文件有误!');</script>");
80
80 }
81
81 }
82
82 protected void rdosql_CheckedChanged(object sender, EventArgs e)
83
83
{
84
84 uid = txtuid.Text;
85
85 pwd = txtpwd.Text;
86
86 }
87
87 protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
88
88
{
89
89 uid = "integrated security=true;";
90
90 }
91
91}
92
92
不应该发布在首页,有不对的,请各位高手指点!
posted on 2007-11-27 08:53
.NET的春天 阅读(1808)
评论(14) 编辑 收藏 网摘 所属分类:
.NET技术