using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient; namespace boss
{
class Program
{
static void Main(string[] args)
{
//1、创建数据库连接类
string sql = "server=(local);database=Class0928;user=sa;pwd=123;";//编写连接字符串
SqlConnection conn = new SqlConnection(sql);
//2、创建数据库操作对象,创建过程是与刚创建的连接对象匹配起来
SqlCommand cmd = conn.CreateCommand(); for (; ; )
{
//try
//{
Console.WriteLine("请输入您要执行的操作:1、查看 2、增加数据 3、修改数据 4、删除数据");
int code = int.Parse(Console.ReadLine());
if (code == )
{
cmd.CommandText = "select *from users";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Console.WriteLine(dr["ids"] + "\t" + dr["usersname"] + "\t" + dr["password"] + "\t" + dr["nickname"] + "\t" + (Convert.ToBoolean(dr["sex"]) ? "男" : "女") + "\t" + dr["birthday"] + "\t" + dr["nation"] + "\t" + dr["class"]);
}
}
conn.Close();
continue;
}
else if (code == )
{
Console.Write("请输入想要添加的用户名:");
string uname = Console.ReadLine();
cmd.CommandText = "select *from users";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
int a = ;
if (dr.HasRows)
{
while (dr.Read())
{ //检查是否用户名重复
if (dr["usersname"].ToString() == uname)
{
a++;
break;
}
}
}
conn.Close();
if (a == )//用户名无重复
{
string pwd;
for (; ; )
{
Console.Write("请输入密码:");
string mima = Console.ReadLine();
if (mima != "")
{
pwd = mima;
break;
}
else
{
Console.WriteLine("密码不能为空,请重新输入:");
continue;
}
}
string nick;
for (; ; )
{
Console.Write("请输入昵称:");
string miname = Console.ReadLine();
if (miname != "")
{
nick = miname;
break;
}
else
{
Console.WriteLine("昵称不能为空,请重新输入:");
continue;
}
}
string sex;
for (; ; )
{
Console.Write("请输入性别(男/女): ");
string sex1 = Console.ReadLine();
if (sex1 == "男")
{
sex = "True";
break;
}
else if (sex1 == "女")
{
sex = "False";
break;
}
else
{
Console.WriteLine("输入性别有误,请重新输入:");
continue;
}
}
string bir;
for (; ; )
{
Console.Write("请输入您的生日:");
try //尝试去做,如果有错,从错误的句直接跳转到catch
{
DateTime shengri = DateTime.Parse(Console.ReadLine());
bir = shengri.ToString();
break;
}
catch
{
Console.WriteLine("输入日期格式错误");
continue;
}
}
string nation;
for (; ; )
{
Console.Write("请输入民族:");
string nation1 = Console.ReadLine();
if (nation1 == "汉族")
{
nation = "N001";
break;
}
else if (nation1 == "满族")
{
nation = "N002";
break;
}
else if (nation1 == "藏族")
{
nation = "N003";
break;
}
else if (nation1 == "彝族")
{
nation = "N004";
break;
}
else
{
Console.WriteLine("输入民族有误,请重新输入!");
continue;
}
}
string cla;
for (; ; )
{
Console.Write("请输入班级:");
string banji1 = Console.ReadLine();
if (banji1 == "一班")
{
cla = "C001";
break;
}
else if (banji1 == "二班")
{
cla = "C002";
break;
}
else if (banji1 == "三班")
{
cla = "C003";
break;
}
else if (banji1 == "四班")
{
cla = "C004";
break;
}
else
{
Console.WriteLine("输入班级有误,请重新输入!");
continue;
}
}
cmd.CommandText = "insert into users values('" + uname + "','" + pwd + "','" + nick + "','" + sex + "','" + bir + "','" + nation + "','" + cla + "')";
conn.Open();
int count = cmd.ExecuteNonQuery();
conn.Close();
if (count > )
{
Console.WriteLine("添加成功!");
}
else
{
Console.WriteLine("添加失败!");
} }
else//用户名重复
{
Console.WriteLine("该用户名已存在!");
continue;
}
}
else if (code == )
{
bool has = false;//判断用输入的数据是否存在,true表示存在,false不存在 Console.Write("请输入要修改的用户名:");
string uname = Console.ReadLine();
cmd.CommandText = "select *from users where usersname = '" + uname + "'"; conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows) //如果查到此用户信息
{
has = true;//将中间变量更改为true,证明有此条信息
}
conn.Close();
if (has)//如果有此条信息,那么需要进行删除判断
{
Console.Write("已查到此用户信息,是否要修改?(Y/N)");
string u = Console.ReadLine(); //记录用户的操作
if (u.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(); cmd.CommandText = "update Users set PassWord=@pwd,NickName=@nick,Sex=@sex,Birthday=@bir,Nation=@nation,Class=@cla where UsersName=@uname";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@pwd", pwd);
cmd.Parameters.AddWithValue("@nick", nick);
cmd.Parameters.AddWithValue("@sex", sex);
cmd.Parameters.AddWithValue("@bir", bir);
cmd.Parameters.AddWithValue("@nation", nation);
cmd.Parameters.AddWithValue("@cla", cla);
cmd.Parameters.AddWithValue("@uname", uname); conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Console.WriteLine("修改成功!");
}
else//用户选择不删除
{
Console.WriteLine("修改取消!");
}
}
else//未查到用户信息,判断has=false
{
Console.WriteLine("用户名输入错误!未查到此用户信息!");
} }
else if (code == )
{
Console.Write("请输入想要删除的用户名:");
string user = Console.ReadLine();
cmd.CommandText = "select ids,UsersName,PassWord,NickName,Sex,Birthday,(select NationName from Nation where NationCode=Users.Nation) as 'Nation' ,ClassName as 'Class' from Users join Class on Class.ClassCode=Users.Class where UsersName='" + user + "'";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows)
{
conn.Close();
//数据存在情况下
Console.WriteLine("查到此数据,是否要执行删除操作,如果要删除请输入:1");
int sr = Convert.ToInt32(Console.ReadLine()); if (sr == )
{
cmd.CommandText = "delete from Users where UsersName='" + user + "'";
conn.Open();
int s = cmd.ExecuteNonQuery();//执行操作,并记录受影响的行数
if (s > )
Console.WriteLine("删除成功。");
else
{
Console.WriteLine("删除失败");
}
}
else
{
Console.WriteLine("取消删除。");
}
}
else
{
//数据不存在
Console.WriteLine("输入的编号错误!");
}
conn.Close();
}
else
{
Console.WriteLine("无此操作序号有误,请重新输入!");
continue;
}
}
//catch
//{
// Console.WriteLine("输入有误,请重新输入!");
// continue;
//}
Console.ReadKey();
}
}
}

ADO.Net 增、删、改、查(综合练习)的更多相关文章

  1. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  4. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  5. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  6. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  7. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  8. django单表操作 增 删 改 查

    一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...

  9. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  10. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

随机推荐

  1. JavaScript学习笔记-用于模式匹配的String方法

    用于模式匹配的String方法:   String支持4种使用正则表达式的方法:           seach()用于检索,参数是一个正则表达式,返回第一个与之匹配的子串的位置,找不到则返回-1,如 ...

  2. javascript --- 实时监听输入框值的变化

    实时监听文本框值变化是非常常见的功能,通常最简单的办法就是用keyup,keydown来实现,但是这种方法有两个问题,一个是当直接复制粘贴的时候没法监听到事件,另外一个问题是在移动端,使用删除键删除输 ...

  3. SharePoint 2013必备组件离线包安装:AppFabric无法安装问题解决

    由于没有网络,无法使用sharepoint2013的安装必备软件的在线下载向导安装,当要安装 SharePoint 2013 的服务器与 Internet 隔离时,通常需要从脱机位置安装必备组件.即使 ...

  4. javascript 中 !~ 什么意思

    快过年放假了,也终于闲下来了.每天游览于各种技术文章中,这种状态好极了.下午看篇关于js的文章,其中有如下这么一段引起了我的注意. (function () { var names = []; ret ...

  5. 数据存储与IO(二)

    一.NSBundle资源包. 只要把文件拖到Xcode左边项目导航面板中,选择复制文件到项目中,该文件就包含进bundle中了.用[NSBundle mainBundle]获取应用程序包,常用的方法: ...

  6. Grunt安装配置教程:前端自动化工作流

    Grunt这货是啥? Grunt 是一个基于任务的 JavaScript 项目命令行构建工具. 最近很火的前端自动化小工具,基于任务的命令行构建工具 http://gruntjs.com Grunt能 ...

  7. android 8种对话框(Dialog)使用方法汇总

    1.写在前面 Android提供了丰富的Dialog函数,本文介绍最常用的8种对话框的使用方法,包括普通(包含提示消息和按钮).列表.单选.多选.等待.进度条.编辑.自定义等多种形式,将在第2部分介绍 ...

  8. cdh集群数据恢复

    CDH 数据库 磁盘坏了  所有集群配置 都没了    而且 还没备份  ....    元数据 还在  cdh  软件配置 和  安装软件 不能用了 下载 apache hadoop   重新配置  ...

  9. android中基于HTML模板的方式嵌入SWF

    继上一篇 利用webview实现在andorid中嵌入swf 这篇继续说说通过html模板的方式来嵌入SWF,这样做的好处最直观的就是可以把html,swf和android代码串起来,交互操作很方便( ...

  10. Sql Server之旅——第一站 那些给我们带来福利的系统视图

    本来想这个系列写点什么好呢,后来想想大家作为程序员,用的最多的莫过于数据库了,但是事实上很多像我这样工作在一线的码农,对sql 都一知半解,别谈优化和对数据库底层的认识了,我也是这样... 一:那些系 ...