在给一个客户做的系统上,因为要对数据库进行查看,但之前都是用TeamView来连接到客户的服务器进行数据库操作的
但最近客户那边的TeamView好像更改过密码导致我无法正常连接,而巧了客户的网官因为有事没有上班所以也法获取新的密码。
因为业务原因急需查看数据库,所以就写了一个简单的SQl命令并部署到客户的服务器来通过Web执行Sql命令
将ConnectonString更改为自己的数据库连接并保存为**.aspx即可
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>exec mssql command-HTL</title>
</head>
<%@ Page Language="C#" enableViewState="true" %>
<%@ Import namespace="System" %>
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
if(txt_sql.Value.Length>0){
string _ConnectionString=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
if(string.IsNullOrEmpty(_ConnectionString))
{
Response.Write("ConnectionString is null<br>");
Response.End();
} Response.Write("Sql Command:<br>"+txt_sql.Value);
using (SqlConnection connection = new SqlConnection(_ConnectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try{
cmd.Connection = connection;
cmd.CommandText = txt_sql.Value;
cmd.Connection.Open();
// exec select
if(txt_sql.Value.ToString().ToLower().Contains("select "))
{
using(SqlDataAdapter sda=new SqlDataAdapter(cmd))
{
DataTable dtable = new DataTable();
sda.Fill(dtable);
GridView1.DataSource=dtable;
GridView1.DataBind();
}
}
//exec update,insert,delete,other
else
cmd.ExecuteNonQuery();
Response.Write("<br>sql Command Success");
}
catch (Exception e1) { Response.Write(e1.Message); }
finally{
connection.Close();
}
}//end using sqlcommand
}//end using SqlConnection
}//end if
}//end Button1_Click
</script>
<body>
<center>
<h1 style="color:red;">at before executing Sql command , please backup database </h1>
</center>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" ></asp:GridView><br>
<textarea id="txt_sql" runat="server" style="width:80%;height:200px;"></textarea>
<br>
<asp:Button ID="btnAdd" runat="server" Text="Exec Sql" OnClick="Button1_Click" />
</form>
</body>
</html>

有图有真相:
 
为了安全,将下面的配置添加到web.config文件并在服务品上添加相应的用户名和密码用于访问该文件
如果要访问mssql.aspx文件则必须要用”WWW_mssql“ 账号进行登陆否则无法访问
<locationpath="mssql.aspx">
<system.web>
<authorization>
<allowusers=".\WWW_mssql"/>
<denyusers="*"/>
</authorization>
</system.web>
</location>
如果任务完成请将该文件删除,防止出现安全问题
 
至于为何要在asp.net页面中直接编写C#代码?主要是简单,只是一个文件而已不需要重新编译Dll且不会对现有的系统有任何影响。
 
参考(如何在Asp.net页面中直接编写C#代码 ):

Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境的更多相关文章

  1. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  2. 编写一个简单的Web Server

    编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...

  3. 使用依赖关系注入在 ASP.NET Core 中编写干净代码

    ASP.NET Core 1.0 是 ASP.NET 的完全重新编写,这个新框架的主要目标之一就是更多的模块化设计.即,应用应该能够仅利用其所需的框架部分,方法是框架在它们请求时提供依赖关系.此外,使 ...

  4. [转]使用依赖关系注入在 ASP.NET Core 中编写干净代码

    本文转自:http://blog.jobbole.com/101270/ 原文出处: Steve Smith    ASP.NET Core 1.0 是 ASP.NET 的完全重新编写,这个新框架的主 ...

  5. ASP.NET空网页生成默认代码注释

    当在Visual Studio下生成ASP.NET空网页时,默认生成代码: <%@ Page Language="C#" AutoEventWireup="true ...

  6. Python学习 - 编写一个简单的web框架(二)

    在上一篇日志中已经讨论和实现了根据url执行相应应用,在我阅读了bottle.py官方文档后,按照bottle的设计重写一遍,主要借鉴大牛们的设计思想. 一个bottle.py的简单实例 来看看bot ...

  7. 编写自己的一个简单的web容器(一)

    在之前的博客中我更大家说过Http协议是对tcp协议的封装,其底层还是使用tcp协议来进行数据传出的,浏览器实际上就是一个Socket客户端,今天呢我们就开始着手利用ServerSocket来编写一个 ...

  8. VS2017创建控制台应用后,编写完代码调试正常,使用exe文件直接执行出现闪退情况解决方法。

    这是因为代码中包含的相对路径的原因. 解决办法:把项目中包含的所有相对路径修改为绝对路径. (个人觉得因为直接执行exe文件,默认打开在C盘的用户目录下.) 例如: std::string DATA_ ...

  9. Python学习 - 编写一个简单的web框架(一)

    自己动手写一个web框架,因为我是菜鸟,对于python的一些内建函数不是清楚,所以在写这篇文章之前需要一些python和WSGI的预备知识,这是一系列文章.这一篇只实现了如何处理url. 参考这篇文 ...

随机推荐

  1. git团队开发常用命令

    Git >>>>>>>>>>>> git clone <项目地址,http(s)> 把云端的项目克隆到本地 git ...

  2. ActiveMQ 权限(一)

    在 ActiveMQ 认证(一) 中,若用户名或密码不正确,不能连接到ActiveMQ.我们可以通过配置文件,确用户是否有消息的读取.写入和管理的权限. 在plugin配置节点下,配置以下信息: &l ...

  3. luogu P3383 【模板】线性筛素数

    题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行 ...

  4. MySQL注射绕过技巧(二)

    这次说到注入时空格的过滤 ①注释绕过空格 我们在查看user()的时候需要用到空格 如: select user(): 然后我们用 /**/ 来绕过 ②加号绕过空格(不太建议使用除个别情况) 其实   ...

  5. java中代码块的认知

    在以往面试题中,出现过很多次关于代码块执行顺序的题目,目前可算是搞清楚执行顺序了.看以下代码: package com.itcast.code; public class BlockTest { st ...

  6. [bzoj1019][SHOI2008]汉诺塔 (动态规划)

    Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体. 对汉诺塔的一次合法的操 ...

  7. 快速幂 cojs 1130. 取余运算

    cojs 1130. 取余运算 ★   输入文件:dmod.in   输出文件:dmod.out   简单对比时间限制:10 s   内存限制:128 MB [题目描述] 输入b,p,k的值,求b^p ...

  8. 温故而知新---Java(一)

    学习不仅要学习新的东西,而且还要时不时的回过头捡漏... 本文参考老马说编程系列等文,在此推荐大家关注老马说编程系列文章 正文 基础知识 数据类型主要是为了对数据进行分类,方便理解和操作,在Java中 ...

  9. python函数 divmod

    divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: a,b可以为数字(包括复数) from 2. Add ...

  10. mysqldump之字符集问题解决

    最近导数据的需求真多,年底了大家都要做分析吗?近期使用mysqldump导出的中文出现乱码问题. mysqldump -uroot -ppassword -S /tmp/mysql9991.sock ...