数据库连接 ADO.NET增删改查

ADO.net:数据库访问技术
程序操作的数据都是变量或对象,这些东西都存在于内存中
但是有很多的数据是存在数据库中的,数据库中的数据存在于硬盘上

作用:将数据库中的数据取到内存中来,可以让程序进行操作
将内存中的数据,写入到数据库中

1、using System.Data.SqlClient; //引用命名空间

2、建立 数据库连接类
string str = "server=.;database=Data0515;user=sa;pwd=123;";//连接字符串
SqlConnection conn = new SqlConnection(str);

3、建立 数据库操作类
SqlCommand cmd = conn.CreateCommand();

cmd.CommandText = "select *from student";

4、开启数据库连接通道
conn.Open();

5、读取数据,数据读取类
SqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows) //是否读取到了数据
{
while (dr.Read()) //循环一行一行的往下读
{
//每读一行,都要执行的操作
Console.WriteLine(dr[0].ToString() + " " + dr[1].ToString() + " " + dr[2].ToString() + " " + Convert.ToDateTime(dr[3]).ToString("yyyy年MM月dd日") + " " + Convert.ToInt32(dr[4]));
}
}

6、关闭数据库通道!!!!!
conn.Close();
------------------------------------------------------------------------------------------------
添加

让用户输入添加的内容【记得根据具体内容加限制内容!!!】
Console.Write("请输入学生编号:")
string Code = Console.ReadLine();

SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();

cmd.CommandText = "insert into student values('" + Code + "','" + Name + "','" + Sex + "','" + Time + "'," + Class + ");";

try
{
conn.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("添加成功!");
}
catch
{
Console.WriteLine("添加失败!");
}
finally
{
conn.Close();
}

修改
SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
string UpCode = "";

while (true)
{
bool has = false;
//要修改的主键字段值
Console.Write("请输入要修改的主键字段值:");
UpCode = Console.ReadLine();

cmd.CommandText = "select *from student where sno=" + UpCode;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
has = true;
}
conn.Close();
if (has)
{
break;
}
else
{
Console.WriteLine("查无此(字段值对应的)信息,请确定(字段值)输入是否正确!");
}
}
//修改的信息
Console.Write("请输入修改的信息:");
string 字段名 = Console.ReadLine();

//修改数据库数据
cmd.CommandText = "update student set sname='" + Name + "',ssex='" + Sex + "',sbirthday='" + Time + "',class='" + Class + "' where sno ='" + UpCode + "'";
try
{
conn.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("修改成功!");
}
catch
{
Console.WriteLine("修改失败!");
}
finally
{
conn.Close();
}


删除
SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
string DelCode = "";
while (true)
{
bool has = false;
//要删除的主键对应的值
Console.Write("请输入要删除的学生编号:");
DelCode = Console.ReadLine();

cmd.CommandText = "select *from student where sno=" + DelCode;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
has = true;
}
conn.Close();
if (has)
{
break;
}
else
{
Console.WriteLine("查无此学生信息,请确定学号输入是否正确!");
}
}
bool isokok = false;
//1、询问用户是否确定删除
Console.Write("已查到" + DelCode + "学生的信息,是否确定要删除?(Y/N):");
while (true)
{
string isok = Console.ReadLine();
if (isok.ToUpper() == "Y")
{
isokok = true;
break;
}
else if (isok.ToUpper() == "N")
{
isokok = false;
break;
}
else
{
Console.Write("输入有误!请重新输入:");
}
}
//2、执行删除
if (isokok)
{
cmd.CommandText = "delete from student where sno = " + DelCode;
conn.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("删除成功!");
conn.Close();
}
cmd.ExecuteNonQuery();
具体格式请参照作业代码

-----------------------------------------------------------------------
作业:
创建一个数据表:
AdoStudent 表名:
Code - 编号:主键 S101 S102 S103
Name - 姓名:
Sex - 性别:男是true,女是false
Birthday - 生日:
Score - 成绩:decimal

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

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

添加成功后,重新刷新显示最新数据console.clear();

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Collections;//必须先引用数据库命名空间

namespace ADO作业练习
{
    class Program
    {
        static void Main(string[] args)
        {
            //查询
            //建立数据库连接类
            SqlConnection conn = new SqlConnection("serve=.;database=zuoye;user=sa;pwd=123");
            //建立数据库查询类
            SqlCommand cmd = conn.CreateCommand();

            //可循环操作
            while (true)
            {

                #region 查询
                //执行查询数据库数据的操作
                cmd.CommandText = "select *from AdoStudent";
                Console.WriteLine("学号    姓名    性别    生日        成绩");
                //开启数据库
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)//如果读取到数据
                {
                    while (dr.Read())
                    {
                        Console.WriteLine(dr["code"].ToString() + dr["name"].ToString() + (Convert.ToBoolean(dr["sex"]) ? "" : "") + Convert.ToDateTime(dr["birthday"]) + Convert.ToDecimal(dr["score"]).ToString("0.##"));
                    }
                }
                //关闭数据库
                conn.Close();

                #endregion

                //询问用户接下来的操作
                Console.Write("请输入要进行的操作:(1:添加,2:修改,3:删除)");
                int caozuo = Convert.ToInt32(Console.ReadLine());

                #region 添加
                //添加
                if (caozuo == 1)
                {
                    //自动生成一个新的学号
                    ArrayList codes = new ArrayList();//定义新的集合,用来放置从数据库中查询出来的已有的code数据
                    cmd.CommandText = "select *from AdoStudent";
                    conn.Open();
                    dr = cmd.ExecuteReader();
                    if (dr.HasRows)
                    {
                        while (true)
                        {
                            //定义新的变量shu来接收数据【转化为int类型(查询到的code.转化成string.从序号1截取到最后)】
                            int shu = Convert.ToInt32(dr["code"].ToString().Substring(1));
                            codes.Add(shu);//将数扔进codes集合里
                        }
                    }
                    conn.Close();
                    //将集合里codes里的数据按从大到小的顺序排列
                    codes.Sort();
                    //获取集合codes中最大的那个数
                    int maxcode = Convert.ToInt32(codes[codes.Count - 1]);
                    string endcode = "s" + (maxcode + 1);//将序号转换成字符串类型
                    //用户输入要添加的学生的所有信息
                    Console.WriteLine("新学生的标号为:" + endcode);
                    string name = "";
                    while (true)
                    {
                        Console.Write("请输入学生姓名:");
                        name = Console.ReadLine();
                        if (name == "")
                        {
                            Console.WriteLine("姓名不能为空!");
                        }
                        else
                        {
                            break;
                        }
                    }
                    bool sex1 = false;
                    string sex = "";
                    while (true)
                    {
                        Console.Write("请输入学生性别:");
                        sex = Console.ReadLine();
                        if (sex == "")
                        {
                            sex1 = true;
                            break;
                        }
                        else if (sex == "")
                        {
                            sex1 = false;
                            break;
                        }
                        else
                        {
                            Console.WriteLine("性别输入错误!");
                        }
                    }
                    DateTime birthday = DateTime.Now;
                    while (true)
                    {
                        Console.Write("请输入学生生日:");
                        try
                        {
                            birthday = Convert.ToDateTime(Console.ReadLine());
                            break;
                        }
                        catch
                        {
                            Console.WriteLine("生日输入有误!");
                        }
                    }
                    decimal score = 0m;
                    while (true)
                    {
                        Console.Write("请输入学生成绩:");
                        score = Convert.ToDecimal(Console.ReadLine());
                        if (score < 0 || score > 100)
                        {
                            Console.WriteLine("成绩输入有误!");
                        }
                        else
                        {
                            break;
                        }
                    }
                    //将数据添加进数据库
                    cmd.CommandText = "insert into AdoStudent values('" + endcode + "','" + name + "','" + sex + "','" + birthday + "'," + score + ");";
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    Console.Clear();  //清空一下显示内容
                    Console.WriteLine("添加成功!");
                    continue;   //跳出此次循环
                }
                #endregion

                #region 修改
                //修改
                else if (caozuo == 2)
                {
                    while (true)
                    {
                        //首先要确定这个学号对应的学生信息存不存在
                        bool has = false; //判断是否有这个学生
                        Console.Write("请输入要修改的学生编号:");
                        string xiugai = Console.ReadLine();
                        cmd.CommandText = "select *from AdoStudent where Code ='" + xiugai + "'";
                        conn.Open();
                        dr = cmd.ExecuteReader();
                        if (dr.HasRows)
                        {
                            //此处只需要查询一遍有无这个学号即可
                            has = true;
                        }
                        conn.Close();

                        //输入修改后的内容
                        if (has)
                        {
                            Console.WriteLine("已查询到此学生信息,请继续修改操作");
                            //接收用户输入的修改信息
                            string name = "";
                            while (true)
                            {
                                Console.Write("请输入学生姓名:");
                                name = Console.ReadLine();
                                if (name == "")
                                {
                                    Console.WriteLine("姓名不能为空!");
                                }
                                else
                                {
                                    break;
                                }
                            }
                            bool sex1 = false;
                            string sex = "";
                            while (true)
                            {
                                Console.Write("请输入学生性别:");
                                sex = Console.ReadLine();
                                if (sex == "")
                                {
                                    sex1 = true;
                                    break;
                                }
                                else if (sex == "")
                                {
                                    sex1 = false;
                                    break;
                                }
                                else
                                {
                                    Console.WriteLine("性别输入错误!");
                                }
                            }
                            DateTime birthday = DateTime.Now;
                            while (true)
                            {
                                Console.Write("请输入学生生日:");
                                try
                                {
                                    birthday = Convert.ToDateTime(Console.ReadLine());
                                    break;
                                }
                                catch
                                {
                                    Console.WriteLine("生日输入有误!");
                                }
                            }
                            decimal score = 0m;
                            while (true)
                            {
                                Console.Write("请输入学生成绩:");
                                score = Convert.ToDecimal(Console.ReadLine());
                                if (score < 0 || score > 100)
                                {
                                    Console.WriteLine("成绩输入有误!");
                                }
                                else
                                {
                                    break;
                                }
                            }
                            //修改数据库里的数据
                            cmd.CommandText = "update AdoStudent set Name='" + name + "',Sex='" + sex + "',Birthday='" + birthday + "',Score=" + score + " where Code='" + xiugai + "'";
                            conn.Open();
                            cmd.ExecuteNonQuery();
                            conn.Close();
                            Console.Clear();
                            Console.WriteLine("修改成功!");
                            break;//跳出最里面的循环
                        }
                        else
                        {
                            Console.WriteLine("查无此学生信息!");
                        }
                    }
                    continue;
                }

                #endregion

                #region 删除
                //删除
                else if (caozuo == 3)
                {
                    string isok = "";
                    string shanchu = "";
                    while (true)
                    {
                        //1、让用户输入要删除的学生编号
                        bool has = false; //判断是否有这个学生
                        Console.Write("请输入要删除的学生编号:");
                        shanchu = Console.ReadLine();
                        cmd.CommandText = "select *from AdoStudent where Code ='" + shanchu + "'";
                        conn.Open();
                        dr = cmd.ExecuteReader();
                        if (dr.HasRows)
                        {
                            has = true;
                        }
                        conn.Close();
                        //判断有无此学生信息
                        if (has)//有,那么询问用户是否确定删除
                        {
                            Console.Write("已查到此学生信息,是否要删除?输入Y执行删除:");
                            isok = Console.ReadLine();
                            break;
                        }
                        else
                        {
                            Console.WriteLine("无此学生信息,输入有误!");
                        }
                    }
                    //3、执行删除
                    if (isok.ToUpper() == "Y")
                    {
                        cmd.CommandText = "delete from AdoStudent where Code ='" + shanchu + "'";
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        conn.Close();
                        Console.Clear();
                        Console.WriteLine("删除成功!");
                        continue;
                    }
                }
                #endregion
            }
        }
    }
}
原文地址:https://www.cnblogs.com/123lucy/p/5651641.html