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();