peiyuan1030 发表于 2015-6-27 15:32:42

web版的sql server附加器

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

完整代码
源代码下载


11using 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;
1010using System.Data.SqlClient;
1111using System.IO;
1212public partial class _Default : System.Web.UI.Page
1313{
1414    public string sqlServer;
1515    public string uid;
1616    public string pwd;
1717    public string sqlstr;
1818    protected void Page_Load(object sender, EventArgs e)
1919    {
2020      
2121    }
2222    protected void btnStup_Click(object sender, EventArgs e)
2323    {
2424      string fileExtend = Path.GetExtension(File_MDF.PostedFile.FileName);//获取扩展名
2525      string file_Name = Path.GetFileName(File_MDF.PostedFile.FileName); //获取文件名
2626      
2727      if (fileExtend.ToUpper().CompareTo(".MDF") == 0)
2828      {
2929         // Response.Write(fileExtend.ToString()+"名:"+file_Name.ToString()+""+File_MDF.Value);         
3030            string fileName=file_Name.Substring(0,file_Name.LastIndexOf("_",file_Name.Length));//得到正确名称
3131            string logname = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_Log.LDF";
3232            string logname1 = File_MDF.Value.Substring(0, File_MDF.Value.LastIndexOf("_",File_MDF.Value.Length)) + "_log.ldf";
3333            if (File.Exists(logname)||File.Exists(logname1))
3434            {
3535                if (rdosql.Checked)
3636                {
3737                  sqlServer = "server=" + txtServer.Text + ";User id=" + txtuid.Text + ";Pwd=" + txtpwd.Text + "";
3838                }
3939                else
4040                {
4141                  sqlServer = "server=" + txtServer.Text + ";uid="+uid+"";
4242                }
4343                SqlConnection sqlCon = new SqlConnection(sqlServer);
4444                sqlCon.Open();
4545                try
4646                {
4747                  string str = "EXEC sp_attach_db @dbname=N'" + fileName + "',@filename1=N'" + File_MDF.Value + "',@filename2=N'" + logname + "'";
4848                  SqlCommand cmd = new SqlCommand(str, sqlCon);
4949                  cmd.ExecuteNonQuery();
5050                }
5151                catch (SqlException exc)
5252                {
5353                  if (chkAppend.Checked)
5454                  {
5555                        SqlCommand cmd1 = new SqlCommand("EXEC sp_detach_db @dbname='" + fileName + "';" + "EXEC sp_attach_single_file_db @dbname='" + fileName + "',@physname='" + File_MDF.Value + "'", sqlCon);
5656                        cmd1.ExecuteNonQuery();
5757                        Response.Write("alert('数据附加成功!');");
5858                  }
5959                  else
6060                  {
6161                        Response.Write("alert('数据库未能安装成功提示:将原有的数据库分离');");
6262                  }
6363                }
6464                finally
6565                {
6666                  if (sqlCon.State == ConnectionState.Open)
6767                        sqlCon.Close();
6868                  //搞定,收工!
6969                }
7070               
7171            }
7272            else
7373            {
7474                Response.Write("alert('警告,找不到相应的日志文件!');");
7575            }
7676      }
7777      else
7878      {
7979            Response.Write("alert('选择文件有误!');");
8080      }
8181    }
8282    protected void rdosql_CheckedChanged(object sender, EventArgs e)
8383    {
8484      uid = txtuid.Text;
8585      pwd = txtpwd.Text;
8686    }
8787    protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
8888    {
8989      uid = "integrated security=true;";
9090    }
9191}
9292不应该发布在首页,有不对的,请各位高手指点!
页: [1]
查看完整版本: web版的sql server附加器