利用ASP.NET运行数据库的安装脚本
在启明星的演示站点里,经常有用户修改演示密码,导致别的用户无法访问。
为此,在登陆页面,增加了一个“初始化数据库”功能,这样,即使用户修改了密码,别的访问者,只要重置数据库,就可以很容易再次进入。
首先,利用MSSQL Manage Studio生产脚本放到网站下。
下面是SQL.aspx源代码
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server"> protected void btnInitDb_Click(object sender, EventArgs e)
{ string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
string DBName = "book.sql"; //try
//{
// this.Response.Write("Write connecting string to web.config<BR>");
// Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
// string csName = "connectionstring";
// ConnectionStringsSection csSection = config.ConnectionStrings;
// csSection.ConnectionStrings[csName].ConnectionString = connectionString;
// config.Save(ConfigurationSaveMode.Modified); //}
//catch (Exception ex)
//{
// Response.Write("写入web.config数据错误:" + ex.ToString());
// return;
//} SqlConnection conn = null;
try
{ using (StreamReader sr = new StreamReader(Server.MapPath("~/app_data/"+DBName)))
{ // Create new connection to database
conn = new SqlConnection(connectionString); conn.Open(); while (!sr.EndOfStream)
{
StringBuilder sb = new StringBuilder();
SqlCommand cmd = conn.CreateCommand(); while (!sr.EndOfStream)
{
string s = sr.ReadLine();
if (s != null && s.ToUpper().Trim().Equals("GO"))
{
break;
} sb.AppendLine(s);
} // Execute T-SQL against the target database
cmd.CommandText = sb.ToString();
cmd.CommandTimeout = 3000; cmd.ExecuteNonQuery();
} }
Response.Redirect("default.aspx"); // Page.RegisterClientScriptBlock("success", "<script>alert('安装成功,系统自动跳转到首页'); window.location='../default.aspx'; </script> "); }
catch (Exception ex)
{
this.Response.Write(String.Format("An error occured: {0}", ex.ToString()));
return;
}
finally
{
if (conn != null)
{
try
{
conn.Close();
conn.Dispose();
}
catch (Exception ee)
{
this.Response.Write(String.Format(@"Could not close the connection. Error was {0}", ee.ToString()));
}
}
} }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>数据库工具</title>
</head>
<body>
<form id="form1" runat="server">
<div>
初始化数据库将把系统还原为原始状态,初始化后即可用admin登陆.
</div>
<asp:Button ID="btnInitDb" runat="server" onclick="btnInitDb_Click" Text="初始化数据库" />
</form>
</body>
</html>
注意红色部分,如果你使用,请修改为你自己的数据库信息。
这样,就再也不担心用户随便修改数据库账户了
你也可以单击此处下载源代码 http://files.cnblogs.com/files/mqingqing123/SQL.rar
利用ASP.NET运行数据库的安装脚本的更多相关文章
- 利用xtrabackup备份mysql数据库
利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...
- 全自动安装mongoDB数据库的shell脚本
最近在研究mongoDB数据库,写了个全自动安装mongoDB数据库的shell脚本,仅供参考,欢迎拍砖,内容如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本 ...
- ASP.NET MVC--sqlserver数据库脚本的导入导出
1.右键选择数据库---任务----生成脚本 2.弹出如下框 导出整个表,默认下一步,否则选择特定数据库对象表单选框 3.修改文件名路径,可以保存脚本到制定路径,否则为默认,点击高级进入 要编写脚本的 ...
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) 背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...
- ASP.NET MVC 5 03 - 安装MVC5并创建第一个应用程序
不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小 ...
- 使用安装脚本安装Texlive
介绍 TeX Live 是 TUG (TeX User Group) 维护和发布的 TeX 系统,可说是「官方」的 TeX 系统.网上可找到的教程大多是从镜像安装完整版texlive.镜像发布的周期较 ...
- 利用RMAN恢复整个数据库
利用RMAN恢复整个数据库案例一 适合场合:恢复的目录一致,同时备份的过程中有归档日志 恢复的数据库目录和down机的数据库一致,还有一个就是RMAN备份的时候已经备份了归档日志. 备份脚本: run ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- (译)利用ASP.NET加密和解密Web.config中连接字符串
介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...
随机推荐
- 026 Spark 的官网(版本为1.6.1的总官网)
1. 多多读官网,所有的只知识点都可以从上面的总纲中查到.
- Laravel 去掉访问后面的 “public”
将laravel/server.PHP 改名为index.php,再将public目录下的.htaccess拷贝到Larvael根目录下,再访问Larvael就会发现不需要加上public,由于访问入 ...
- linux学习笔记-7.文件属性
1.查看文件夹属性 ls -ld test 2.文件夹的rwx --x:可以cd进去r-x:可以cd进去并ls-wx:可以cd进去并touch,rm自己的文件,并且可以vi其他用户的文件-wt:可以c ...
- git入门教程,主要命令详解。
准备工作 git clone url / ssh ----------------------------------------------------------------------从git ...
- NOIP练习赛题目3
魔兽争霸 难度级别:C: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 小x正在销魂地玩魔兽他正控制着死亡骑士和n个食尸鬼(编号1-n)去打 ...
- NOIP练习赛题目2
小K的农场 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个 ...
- 得到某个android应用 的POST和GET请求的 网址和参数
两种思路: 1.用笔记本建个wifi热点,然后抓包. 2. 把APK装到模拟器上 会在任务管理中有个exe进程,用一个软件可以抓取这个进程的所有请求 .
- 深刻领悟javascript中的exec与match方法之异同
阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code: var someText="web2.0 .net2.0"; ...
- Codeforces Round #404 (Div. 2) A - Anton and Polyhedrons 水题
A - Anton and Polyhedrons 题目连接: http://codeforces.com/contest/785/problem/A Description Anton's favo ...
- systemtap 安装 总结
http://blog.soul11201.com/notes/2017/02/22/systemstap-install.html