ado.net 完整修改删除,攻击防攻击
完整修改和删除:
当你输入了要删除的用户名,先提示有没有此条数据
先查
后删/后改
------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; namespace 完整删除_修改_攻击防攻击
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入要删除的用户名:");
string name = Console.ReadLine(); SqlConnection conn = new SqlConnection("server=.;database=Data1128;user=sa;pwd=123");
SqlCommand com = conn.CreateCommand();
com.CommandText = "select *from Users where usename='"+name+"'"; conn.Open();
SqlDataReader dr=com.ExecuteReader();
if (dr.HasRows)//如果查到此用户信息
{
Console.Write("是否删除该用户:(Y/N)");//如果有此条信息,那么需要进行删除判断
string n = Console.ReadLine();//记录用户的操作
if (n.ToUpper() == "Y")//判断用户操作,如果是Y,说明要删除
{
conn.Close();
//下面的代码是真正删除此条数据
com.CommandText="delete from Users where usename='"+name+"'"; int i = ;
try
{
conn.Open();
i = com.ExecuteNonQuery();
}
catch
{
Console.WriteLine("连接服务器失败!!");
}
finally
{
conn.Close();
}
if (i > )//判断是否删除成功
{
Console.WriteLine("删除成功!");
com.CommandText = "select *from Users";//查询所有用户信息
conn.Open();
SqlDataReader dr1 = com.ExecuteReader();
if (dr1.HasRows)//判断是否有用户信息
{
while (dr1.Read())//判断是否有下一行,若有直接打印
{
Console.WriteLine(dr1["code"] + "\t" + dr1["usename"] + "\t" + dr1["password"] + "\t" + dr1["nick"] + "\t" + (Convert.ToBoolean(dr1["sex"]) ? "男" : "女") + "\t" + dr1["nation"] + "\t" + dr1["class"] + "\t" + (Convert.ToDateTime(dr1["birthday"]).ToShortDateString()));
}
}
else//无用户信息
{
Console.WriteLine("无数据!!");
}
conn.Close();
}
else
{
Console.WriteLine("删除失败!");
}
}
else//用户选择不删除
{
Console.WriteLine("删除操作取消!!");
}
}
else//未查到用户信息
{
Console.WriteLine("用户名输入错误!!");
} conn.Close();
Console.ReadLine(); }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient; namespace update
{
class Program
{
static void Main(string[] args)
{
bool has = false;//设置一中间变量判断用输入的数据是否存在,true表示存在,false不存在 Console.Write("请输入要修改的用户名:");
string name = Console.ReadLine(); SqlConnection conn = new SqlConnection("server=.;database=Data1128;user=sa;pwd=123");
SqlCommand com = conn.CreateCommand();
com.CommandText = "select *from Users where usename='"+name+"'"; conn.Open();
SqlDataReader dr = com.ExecuteReader();
if (dr.HasRows)//如果查到此用户信息
{
has = true;//将中间变量更改为true,证明有此条信息
if(dr.Read())//输出修改前要修改的用户的信息
{
Console.WriteLine(dr["code"]+"\t"+dr["usename"]+"\t"+dr["password"]+"\t"+dr["nick"]+"\t"+(Convert.ToBoolean(dr["sex"])?"男":"女")+"\t"+dr["nation"]+"\t"+dr["class"]+"\t"+(Convert.ToDateTime(dr["birthday"]).ToShortDateString()));
}
}
conn.Close();
if (has)
{
Console.Write("已查到此用户信息,是否要修改?(Y/N)");
string mm = Console.ReadLine(); //记录用户的操作
if (mm.ToUpper() == "Y")//判断用户操作,如果是Y,说明要修改
{
Console.Write("请输入要修改的密码:");
string pwd = Console.ReadLine();
Console.Write("请输入要修改的昵称:");
string nick = Console.ReadLine();
Console.Write("请输入要修改的性别:");
string sex = Console.ReadLine();
Console.Write("请输入要修改的生日:");
string bir = Console.ReadLine();
Console.Write("请输入要修改的民族:");
string nation = Console.ReadLine();
Console.Write("请输入要修改的班级:");
string cla = Console.ReadLine();
//防攻击
com.CommandText = "update Users set PASSWORD=@pwd,nick=@nick,sex=@sex,nation=@nation,class=@cla,birthday=@bir where usename=@name";
com.Parameters.Clear();
com.Parameters.AddWithValue("@pwd", pwd);
com.Parameters.AddWithValue("@nick", nick);
com.Parameters.AddWithValue("@sex", sex);
com.Parameters.AddWithValue("@nation", nation);
com.Parameters.AddWithValue("@cla", cla);
com.Parameters.AddWithValue("@name", name);
com.Parameters.AddWithValue("@bir", bir); int i = ;
try
{
conn.Open();
i = com.ExecuteNonQuery();
}
catch(Exception ex)
{
Console.WriteLine("未连接到服务器!\n"+ex);
}
finally
{
conn.Close();
}
if (i > )
{
Console.WriteLine("修改成功!");
com.CommandText = "select code,usename,password,nick,sex,(select nationname from Nation where nationcode=Users.nation) as 民族,(select classname from Class where classcode=Users.class) as 班级,birthday from Users where usename='" + name + "'";
conn.Open();
SqlDataReader dr1 = com.ExecuteReader();
if(dr1.HasRows)
{
while (dr1.Read())//输出修改后用户的信息
{
Console.WriteLine(dr1["code"] + "\t" + dr1["usename"] + "\t" + dr1["password"] + "\t" + dr1["nick"] + "\t" + (Convert.ToBoolean(dr1["sex"]) ? "男" : "女") + "\t" + dr1["民族"] + "\t" + dr1["班级"] + "\t" + (Convert.ToDateTime(dr1["birthday"]).ToShortDateString()));
}
}
conn.Close();
}
else
{
Console.WriteLine("修改失败!!");
}
}
else//用户选择不修改
{
Console.WriteLine("取消修改!");
}
}
else//未查到用户信息,判断has=false
{
Console.WriteLine("无此用户!!");
}
Console.ReadLine(); }
}
}
ado.net 完整修改删除,攻击防攻击的更多相关文章
- ADO.NET(完整修改和查询、实体类,数据访问类)
一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...
- ADO.NET 完整修改、删除、防字符串攻击
首先,我先把昨天所做的人事管理系统进行了优化,将其完善成为了一个更符合实际的系统.将修改及删除数据的数据库操作前面添加了一个查询语句,这样,在实际操作时,如果数据库中没有该条数据,则程序不会执行接下来 ...
- SQL与C#结合完整修改 删除信息
--SQl中--建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) primary key,- ...
- ADO.NET 完整的修改和删除
namespace 完整修改{ class Program { static void Main(string[] args) { bool has = false; Console.Write(&q ...
- php防攻击方法
php防攻击方法 更多答案 请参考 @如何有效防止XSS攻击/AJAX跨域攻击 我说下防止非法用户的一些常用手段吧 1 前端的js验证: 我认为js验证只是一种用户体验的提升,对普通用户群体的简单 ...
- Node.JS实战36:写一个WAF中间件!防黑客,防攻击
如果用Node.JS做Web服务,很多时候是会选择Express的. 本文,将展示如何如何实现一个WAF中间件. WAF有什么用? WAF即Web Application Firewall,Web应用 ...
- PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码
PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码 <?php /* *通过禁止IP频繁访问防止网站被防攻击代码*design by www.scutephp.com*/header('C ...
- boot+Xss防攻击的处理方案
以下是boot+Xss防攻击的(解决处理JSON入参)处理方案,第二个亲测有效 https://www.jianshu.com/p/3e4b00b8ff3ahttps://www.jianshu.co ...
- php防攻击
客户端脚本植入 XSS跨站脚本攻击(跨站脚本攻击,输入(传入)自动执行恶意的HTML代码,如盗取用户Cookie.破坏页面结构.重定向到其它网站):过滤<,>&,"等特殊 ...
随机推荐
- Win7 Object_Header之TypeIndex解析
在暴力搜索内存进程对象反隐藏进程这篇文章中,我们提到: Object Header偏移0×008处Type成员为对象类型值,相同类型的对象具有相同的值. 自Window 7开始, _OBJECT_ ...
- Arduino101学习笔记(十二)—— 101定时器中断
一.API 1.开定时器中断 //*********************************************************************************** ...
- Linux之find命令用于统计信息
1. 计算当前目录中的文件数: [root@localhost tmp]# find . -type f | wc -l 2. 查找/etc目录中最新的和最旧的文件,以文件时间排序并按年-月-日的格式 ...
- java Clone使用方法详解
java"指针" Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念.并且由于Java不能 通过 ...
- 【jQuery 区别】.click()和$(document).on("click","指定的元素",function(){});的区别
给出以下的代码展示: //绑定 下一页 的点击事件 $("a[aria-label='Next']").click(function(){ $("a[aria-label ...
- css 让内容满屏居中不变形
.selector { position: fixed; width: 100%; height: 100%; background-image: url(path); background-repe ...
- BZOJ 3932 [CQOI2015]任务查询系统 ——可持久化线段树
[题目分析] 主席树,维护区间大小以及权值之和. 但是细节确实要琢磨很久,WA了几次. [代码] #include <cstdio> #include <cstring> #i ...
- jquery的siblings()
jquery 点击 感兴趣 感兴趣变为 蓝色 去掉onclick事件 不感兴趣 变为 黑色 加上点击事件 点击 不感兴趣 不感兴趣变为 蓝色 去掉onclick 感兴趣 变为 黑色 加上点击事件 ht ...
- js公有、私有、静态属性和方法的区别
现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人对于原生javascript缺乏深入的理解, ...
- BZOJ2448 : 挖油
$f[i][j]$表示仅考虑$[i,j]$区间的答案,则 $f[i][j]=\min(\max(f[i][k-1],f[k+1][j])+a[k]),i\leq k\leq j$ 维护出$\max$的 ...