ADO.NET是什么?
ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口。
作用?
通过程序来操作数据库
连接?
Connection 类
和数据库交互,必须连接它。连接帮助指明数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。
与数据库交互的过程意味着必须指明想要执行的操作。这是依靠Command对象执行的。开发人员使用Command对象来发送SQL语句给数据库。Command对象使用Connection对象来指出与哪个数据源进行连接。开发人员能够单独使用Command对象来直接执行命令,或者将一个Command对象的引用传递给DataAdapter,它保存了一组能够操作下面描述的一组数据的命令。[3]
Command对象
成功与数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令;Command对象常用的方法有ExecuteReader()方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入数据可用ExecuteNonQuery()方法来执行插入命令。[3]
DataReader类
许多数据操作要求开发人员只是读取一串数据。DataReader对象允许开发人员获得从Command对象的SELECT语句得到的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的数据流。这意味着开发人员只能按照一定的顺序从数据流中取出数据。这对于速度来说是有好处的,但是如果开发人员需要操作数据,更好的办法是使用DataSet。[3]
string sql = "server=.;database=dat0216;user=sa;pwd=123;"; // .是服务器名 database 连接数据库名 user 登入用户名 pwd 登入密码 SqlConnection conn = new SqlConnection(sql); //数据库类 最好用conn起名 SqlCommand cmd = conn.CreateCommand(); //sql操作命令 createcommand创建命令 cmd.CommandText = "insert into users values('zhangsan','1234','李三',1,'2003-1-1','N002');"; // 命令 是数据库的语句 insert into users values('zhangsan','1234','李三',1,'2003-1-1','N002') conn.Open(); //数据库开门 cmd.ExecuteNonQuery(); //操作命令 conn.Close(); //数据库关门 Console.ReadLine();
简易的删除数据
string sql = "server=.;database=dat0216;user=sa;pwd=123;"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "delete from users where Username='lisi';"; conn.Open(); int a=cmd.ExecuteNonQuery(); //受影响的行数 赋值给a if(a>0) Console.WriteLine("删除成功,本次共删除"+a+"行。"); else Console.WriteLine("删除失败,本次没有删除任何数据。"); conn.Close(); Console.ReadLine();
简易的修改数据
bool hs = false; string sql = "server=.;database=dat0216;user=sa;pwd=123;"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); Console.Write("请用户输入要修改的用户名:"); string name = Console.ReadLine(); //查询此用户 cmd.CommandText = "select * from Users where UserName='"+name+"';"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); //如果有这一行数据 if (dr.HasRows) hs = true; conn.Close(); if (!hs) Console.WriteLine("输入的用户名错误,没有此用户名"); else { Console.WriteLine("已查询到此用户名,请进行修改内容:"); Console.Write("请输入要修改后的密码:"); string passward = Console.ReadLine(); Console.Write("请输入要修改后的昵称:"); string nickname = Console.ReadLine(); Console.Write("请输入要修改后的性别:"); string sex = Console.ReadLine(); Console.Write("请输入要修改后的生日:"); string birthday = Console.ReadLine(); Console.Write("请输入要修改后的民族:"); string nation = Console.ReadLine(); cmd.CommandText = "update users set Passward='"+passward+"', NickName='"+nickname+"',Sex='"+sex+"',Birthday='"+birthday+"',Nation='"+nation+"' where UserName='"+name+"';"; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } Console.ReadLine();