您的位置:首页 > 数据库

ADO.net:数据库的增删改查的练习题

2016-07-08 21:47 459 查看
创建一个数据表:
AdoStudent 表名:
Code - 编号:主键 S101 S102 S103
Name - 姓名:
Sex - 性别:男是true,女是false
Birthday - 生日:
Score - 成绩:decimal

要求:
程序一开启, 把所有的学生信息列出来:
学号 姓名 性别 生日 成绩
S101 张三 男 1999-1-1 99.8
...

请输入要进行的操作:1-添加,2-修改,3-删除:1

添加成功后,重新刷新显示最新数据

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Collections;//引入数据库命名空间

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//建立 数据库连接类
SqlConnection conn = new SqlConnection("server=.;database=student;user=sa;pwd=123");
//建立 数据库操作类
SqlCommand com = conn.CreateCommand();
while (true)
{
//显示数据,查询开始
Console.WriteLine("学号 名字 性别     生日     成绩");
com.CommandText = "select *from adostudent";
//开启数据库连接通道
conn.Open();
//读取数据,数据读取类
SqlDataReader de = com.ExecuteReader();

if (de.HasRows)
{
while (de.Read())
{
Console.WriteLine(de[0].ToString() + " " + de[1].ToString() + " " + (Convert.ToBoolean(de[2]) ? "男" : "女") + " " + Convert.ToDateTime(de[3]).ToString("yyyy年MM月dd日") + " " + Convert.ToDecimal(de[4]).ToString("0.##"));
}
}
//关闭数据库连接通道
conn.Close();
//查询结束
Console.Write("请输入要进行的操作(1-添加,2-修改,3-删除):");
int c = Convert.ToInt32(Console.ReadLine());
#region 添加
if (c == 1)//添加开始
{
//自动生成一个学生的编号
ArrayList arr = new ArrayList();

com.CommandText = "select *from adostudent";
conn.Open();
de = com.ExecuteReader();
if (de.HasRows)
{
while (de.Read())
{
string abc = de["code"].ToString().Substring(1);
arr.Add(abc);
}
}
conn.Close();

arr.Sort();
int maxarr = Convert.ToInt32(arr[arr.Count - 1]);

string endarr = "s" + (maxarr + 1);
//让用户输入学生的每一条信息
Console.WriteLine("新学生的编号为:" + endarr);
Console.Write("请输入新学生的姓名:");
string name = "";
while (true)
{
name = Console.ReadLine();
if (name != "")
{
break;
}
else
{
Console.Write("名字不能为空,请重新输入:");
}
}
bool sex = false;
while (true)
{
Console.Write("请输入学生的性别:");
string ssex = Console.ReadLine();
if (ssex == "男")
{
sex = true;
break;
}
else if (ssex == "女")
{
sex = false;
break;
}
else
{
Console.WriteLine("输入有误");
}
}
Console.Write("请输入学生的出生日期:");
DateTime birthday = DateTime.Now;
while (true)
{
try
{
birthday = Convert.ToDateTime(Console.ReadLine());
break;
}
catch
{
Console.Write("出生日期输入有误,请重新输入:");
}
}
Console.Write("请输入学生的分数:");
decimal score = 0;
while (true)
{
score = Convert.ToDecimal(Console.ReadLine());
if (score >= 0 && score <= 100)
{
break;
}
else
{
Console.Write("成绩输入有误,请重新输入:");
}
}
//添加进数据库
com.CommandText = "insert into adostudent values(@endarr,@name,@sex,@birthday,@score)";
             com.Parameters.Clear();
            com.Parameters.Add("@endarr", endarr);
            com.Parameters.Add("@name", name);
            com.Parameters.Add("@sex", sex);
            com.Parameters.Add("@birthday", birthday);
            com.Parameters.Add("@score", score);
conn.Open();
com.ExecuteNonQuery();
conn.Close();

Console.Clear();
Console.WriteLine("添加成功");

continue;
//添加结束
}
#endregion

#region 修改
else if (c == 2)//修改
{
while (true)
{
bool has = false;//判断是否有这个学生
Console.Write("请输入要修改的学生编号");
string u = Console.ReadLine();

com.CommandText = "select *from adostudent where code='" + u + "'";

conn.Open();
de = com.ExecuteReader();
if (de.HasRows)
{
//只需要查询一遍有无学号
has = true;
}
conn.Close();
//修改后的学生信息
if (has)
{
Console.WriteLine("已查询到此学生信息,请继续修改操作");
//接受用户输入的修改信息
Console.Write("请输入新学生的姓名:");
string name = "";
while (true)
{
name = Console.ReadLine();
if (name != "")
{
break;
}
else
{
Console.Write("名字不能为空,请重新输入:");
}
}
bool sex = false;
while (true)
{
Console.Write("请输入学生的性别:");
string ssex = Console.ReadLine();
if (ssex == "男")
{
sex = true;
break;
}
else if (ssex == "女")
{
sex = false;
break;
}
else
{
Console.WriteLine("输入有误");
}
}
Console.Write("请输入学生的出生日期:");
DateTime birthday = DateTime.Now;
while (true)
{
try
{
birthday = Convert.ToDateTime(Console.ReadLine());
break;
}
catch
{
Console.Write("出生日期输入有误,请重新输入:");
}
}
Console.Write("请输入学生的分数:");
decimal score = 0;
while (true)
{
score = Convert.ToDecimal(Console.ReadLine());
if (score >= 0 && score <= 100)
{
break;
}
else
{
Console.Write("成绩输入有误,请重新输入:");
}
}
//修改数据库数据
com.CommandText = "update AdoStudent set Name='" + name + "',Sex='" + sex + "',Birthday='" + birthday + "',Score=" + score + " where Code='" + u + "'";
conn.Open();
com.ExecuteNonQuery();
conn.Close();

break;//结束循环
}
else
{
Console.Write("查无此学生信息,请确定学号是否输入正确:");
}
}
Console.Clear();
Console.WriteLine("修改成功");
continue;
}
#endregion
else if (c == 3)//删除
{
string isok = "";
string delcode = "";
while (true)
{
//让用户输入要删除的学生编号
bool has = false;//判断是否有这个学生
Console.Write("请输入要删除的学生编号");
delcode = Console.ReadLine();

com.CommandText = "select *from adostudent where code='" + delcode + "'";

conn.Open();
de = com.ExecuteReader();
if (de.HasRows)
{
has = true;
}
conn.Close();
//判断有无此学生信息,如果有,那么询问用户是否确定删除
if (has)
{
Console.Write("已查到此学生信息,是否要删除?输入Y执行删除:");
isok = Console.ReadLine();
break;
}
else
{
Console.WriteLine("无此学生信息,输入有误");
}
}
//执行删除
if (isok.ToUpper() == "Y")
{
com.CommandText = "delete from adostudent where code='" + delcode + "'";
conn.Open();
com.ExecuteNonQuery();
conn.Close();
Console.Clear();
Console.WriteLine("删除成功");
continue;
}
}
}

Console.ReadKey();
}
}
}


cmd.Parameters.Clear();
cmd.Parameters.Add("@name", name);
cmd.Parameters.Add("@sex", sex);
cmd.Parameters.Add("@birthday", birthday);
cmd.Parameters.Add("@score", score);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: