浏览:2892007-11-27 09:46   来自.NET的春天      :

其实现在软件或web应用程序好多都要sql server, 本来对程序员用企业管理器就可以附加进去
晚上闲着也是闲着,做了一个,不对地方,请大家多指教!

using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Web;
 5using System.Web.Security;
 6using System.Web.UI;
 7using System.Web.UI.WebControls;
 8using System.Web.UI.WebControls.WebParts;
 9using System.Web.UI.HtmlControls;
10using System.Data.SqlClient;
11using System.IO;
12public partial class _Default : System.Web.UI.Page 
13{
14    public string sqlServer;
15    public string uid;
16    public string pwd;
17    public string sqlstr;
18    protected void Page_Load(object sender, EventArgs e)
19    {
20      
21    }

22    protected void btnStup_Click(object sender, EventArgs e)
23    {
24        string fileExtend = Path.GetExtension(File_MDF.PostedFile.FileName);//获取扩展名
25        string file_Name = Path.GetFileName(File_MDF.PostedFile.FileName); //获取文件名
26       
27        if (fileExtend.ToUpper().CompareTo(".MDF"== 0)
28        {
29           // Response.Write(fileExtend.ToString()+"<br>名:"+file_Name.ToString()+"<br>"+File_MDF.Value);         
30            string fileName=file_Name.Substring(0,file_Name.LastIndexOf("_",file_Name.Length));//得到正确名称
31            string logname = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_Log.LDF";
32            string logname1 = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_log.ldf";
33            if (File.Exists(logname)||File.Exists(logname1))
34            {
35                if (rdosql.Checked)
36                {
37                    sqlServer = "server=" + txtServer.Text + ";User id=" + txtuid.Text + ";Pwd=" + txtpwd.Text + "";
38                }

39                else
40                {
41                    sqlServer = "server=" + txtServer.Text + ";uid="+uid+"";
42                }

43                SqlConnection sqlCon = new SqlConnection(sqlServer);
44                sqlCon.Open();
45                try
46                {
47                    string str = "EXEC sp_attach_db @dbname=N'" + fileName + "',@filename1=N'" + File_MDF.Value + "',@filename2=N'" + logname + "'";
48                    SqlCommand cmd = new SqlCommand(str, sqlCon);
49                    cmd.ExecuteNonQuery();
50                }

51                catch (SqlException exc)
52                {
53                    if (chkAppend.Checked)
54                    {
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                        cmd1.ExecuteNonQuery();
57                        Response.Write("<script>alert('数据附加成功!');</script>");
58                    }

59                    else
60                    {
61                        Response.Write("<script>alert('数据库未能安装成功  提示:将原有的数据库分离');</script>");
62                    }

63                }

64                finally
65                {
66                    if (sqlCon.State == ConnectionState.Open)
67                        sqlCon.Close(); 
68                    //搞定,收工!
69                }

70                
71            }

72            else
73            {
74                Response.Write("<script>alert('警告,找不到相应的日志文件!');</script>");
75            }

76        }

77        else
78        {
79            Response.Write("<script>alert('选择文件有误!');</script>");
80        }

81    }

82    protected void rdosql_CheckedChanged(object sender, EventArgs e)
83    {
84        uid = txtuid.Text;
85        pwd = txtpwd.Text;
86    }

87    protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
88    {
89        uid = "integrated security=true;";
90    }

91}

楼主
  7个月前   热情的沙漠      :
不错不错,这倒是蛮方便的,顶了
回复  1楼 回到顶楼 

你还不是小组成员,加入小组以后才能发布新主题!
1 26176