【Ado.Net】基础知识+简单实例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Gnd15732625435/article/details/54866376

为什么要学Ado.Net?

  作为程序员,我们一般都可以在Sql Server 的查询分析器里面查看和操作数据库中的数据。但是普通的用户如果要查看和操作数据库中的数据,在查询分析器里面就不会了,我们不能让普通团用户去学Sql server吧。所以,我们搭建了一个界面(Web/Winform)让用户方便的操作数据库中的数据,而Ado.Net在其中就起到了重要的作用。

什么是Ado.Net?

  Ado.Net就是一组类库,这组类库可以让我们通过程序的方式访数据库,就像System.IO下的类用类操作文件一样,System.Data这组类是用来操作数据库(不仅是Sql Server),它提供了统一的编程接口让操作其它数据库(Access、Oracle等)的方式和操作Sql Server一致。

四个常用类?

  Connection(连接通道),用来连接数据库;
  Command(命令对象),用来执行SQL语句(增删改,查询单个值);
  DataReader(数据读取器), 只读,只进的结果集,一条一条读取数据;
  DataAdapter(数据适配器),一个封装了上面3个对象的对象;
  

这里写图片描述

  简单理解:应用程序在操作数据库中的数据的时候,我们首先需要建立一个通道,所有的数据读取和写入都通过这个通道来进行,Connection类解决了通道的问题。有了通道,我们就要选择操作了,是读取还是写入呢?这时候我们需要把我们的需求告诉给Command类。如果是增删改,那么Command会返回给你影响的行数。如果是读取,那看你要读取的内容了。读取一个值,Command就可以完成。读取多个值,就需要DataReader类了。以上的四个类都需要引用命名空间System.Data.SqlClient。如果需要把查询到的结果集本地化,就是把数据库查询之后的结果集从Sql服务器取出来存到本地内存中,则需要引用命名空间System.Data。下面我写了一个简单的登录,以供理解。如有问题,敬请斧正。

登录实例

        private void btnLogin_Click(object sender, EventArgs e)
        {
            string username=txtUserName.Text.Trim();
            string password=txtPassword.Text.Trim();
            if (txtUserName.Text=="")
            {
                MessageBox.Show("请输入用户名!","温馨提示");
            }
            else if (txtPassword.Text=="")
            {
                MessageBox.Show("请输入密码!", "温馨提示");
            }
            else
            {
                //1. 准备好通往数据库的路,但是这条路还没有修好
                SqlConnection conn = new SqlConnection("server=.;database=Test;uid=sa;pwd=jujianfei");
                //2. 准备一个命令对象
                SqlCommand cmd = new SqlCommand();
                //2.1 告诉命令对象要做的事情,就是sql语句
                cmd.CommandText = 
                "select UserName,Password from Login where UserName='" + username + "' And PassWord='" + password + "'";
                //2.2 告诉命令对象,去数据库的路
                cmd.Connection = conn;
                //3. 开通道路,在命令对象执行命令之前才打开通道
                conn.Open();
                //4. 叫命令对象去干活,返回查询的结果集
                SqlDataReader dr=cmd.ExecuteReader();
                //dr的hasRows属性为true,则表示有一行或多行数据;为false,则表示没有查到数据
                if (dr.HasRows) 
                {
                    MessageBox.Show("登录成功!", "温馨提示");
                }
                else
                {
                    MessageBox.Show("登录失败!", "温馨提示");
                }
                //关闭数据库连接
                conn.Close();
            }
        }
展开阅读全文

没有更多推荐了,返回首页