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]