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

创建一个数据表:
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 + ")";
                    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();
        }
    }
}
时间: 2024-10-21 06:45:29

ADO.net:数据库的增删改查的练习题的相关文章

ADO.NET 数据库访问 增删改查如何实现?及示例

ADO.NET:数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中也可以将数据库中的数据提取到内存中供程序调用 所有数据访问技术的基础 连接数据库基本格式:需要两个类1.数据库连接类 SqlConnection2.数据库操作类 SqlCommand 增删改: 需要用到的关键字:SqlConnection SqlCommandcmd.ExecuteNonQuery() //1.连接数据库//写连接字符串,立马就要想到有4点要写完,1.连接

ADO.NET实现对SQL Server数据库的增删改查

了解了上一篇的ADO.NET简介,我们就可以来对数据库进行增删改查等基本操作了!下面是每种操作的具体实现. 先在自定义类的头部定义好数据库连接对象和连接字符串: 1 string connectionString = "Data Source=SC-201607131829;Initial Catalog=Animal;Integrated Security=True"; 2 3 SqlConnection conn; 1.数据库的查询操作,返回一个DataSet 1 public D

ado.net实现数据库的增删改查

前段时间一直学习用ado.net实现对数据库的增删改查,经过两个多月的时间终于写出来了.虽然功能比较简单不过也是花费了不少心血,唉,一把辛酸泪~,写随笔的目的是希望能记录下学习过的东西. 进入正题,我采用了分层的方式来搭建这个项目,项目结构如下图: 下面就采用最简单粗暴的方式来梳理思路,上图贴代码. Dal层代码: Bll层代码: Controller里面代码: Index视图里面部分代码: Update视图部分代码(update视图为"修改"操作时跳转的页面),采用表单提交的方式跳转

【Visual Basic】vb6的ListView控件,对Access2003数据库的增删改查,判断是否有中文、多窗体操作

vb6对Access2003数据库的增删改查并不复杂,可以通过ado对象轻松完成,下面举个小例子,同时说明vb6中的ListView控件的使用.虽然在<[Visual Basic]列表控件ListView的增删改查.模态对话框.禁止窗口调整大小>曾经对VB.NET的ListView控件进行详细的说明,但是证明微软就是个坑爹货,vb6对于ListView实现的代码居然跟VB.NET有着彻底的不同,似乎换了一门语言似得的.改代码什么的最讨厌的. 首先,在vb6生成的工程文件夹中有着一个db1.md

MVC + EF 框架 对数据库做增删改查

这几天一直在看MVC 开发模式,其中借助EF框架对数据库进行 增删改查操作 现在就小小的总结一下吧 在使用EF操作数据库时,会首先添加 ADO.NET数据模型,这时,会为我们添加一个数据上下文类,使用这个类的对象可以对数据库做任何操作.所以在使用EF操作数据库之前 需要创建数据上下文对象. MyDatabaseEntities mde = new MyDatabaseEntities(); 1.使用EF 对数据库 做增加操作 1.1 创建一个需要被操作数据表的对象(一般来说 ,一张表就是一个实体

Asp.net MVC4 使用EF实现数据库的增删改查

EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了,所以就可以在Controller中进行有关的数据库操作) <<controller>> //数据上下文对象 OrderDBEntities db = new OrderDBEntities(); public ActionResult Index() { //使用SQO(标准查询运算符),查询

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码: