• Ado.net


    一、Ado.net介绍

     1.什么是Ado.net

        ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。

        与EF,sqlheader最大的区别就是,底层都是ado.net。

          

      2.新建一个web窗体页面发现它与html页面的区别是最上面多了一行代码:

              

         这行代码表示这个web页面有一个与之对应的后台页面(aspx.cs).cs结尾的一个类文件,这个后端页面去实现和数据库的交互

      3. 我们先在aspx.cs页面打印一句话-hello!:

               

         补充知识点:

              ①.Page_Load:表示页面的入口

              ②.页面一运行就执行Page_Load里面的内容

              ③.关于request和response的运行原理:页面输出一段文字,向客户端发送一个请求,做一个响应

               

                   一个请求reequst,一个响应response都在上下文对象(context)里。

                ④.不同的类调用它的方法要实例化,在同一个类里面可以直接调用。

      

      4.我们通过ado.net把数据库中的一段内容显示在网页中

        ①.通过sql语句得到数据库中的数据,首先要在程序中指定数据的服务器地址,验证方式,用户名和密码

        ②.连接字符串

         ⅰ.第一种方式:     

    string connStr= "Database=Student;Server=.;Integrated Security=false;Uid=sa;Password=123;"      

          

         ⅱ.第二种方式:web.config里面配置[假如页面多,每个页面都要写一个连接字符串,所以我们一般放在配置文件中]

            注意:name="MyBookShop"节点名称,节点名称最好和数据库名称一致

    <connectionStrings>
        <add name="MyBookShop" connectionString="server=.;Database=MyBookShop;Integrated Security=false;Uid=sa; password=123456;" providerName="System.Data.SqlClient"/>
      </connectionStrings>   

        ③.我们把这个放到配置文件之后,我们要怎么获取它呢?

           通过节点名称来获取到节点里面对应的字符串内容,这个过程相当于和别人聊微信需要微信号一样。

            //通过这个类ConfigurationManager获取web.confiig里面的节点名称来获取连接的字符串
            string conStr = ConfigurationManager.ConnectionStrings["MyBookShop"].ToString();

             注意:调用的时候需引入命名空间using System.Configuration;要是不知道怎么写也没关系,鼠标放到ConfigurationManager上面右键,解析就会出来,点击一下就好。

            

        ④.微信号有了,那就要加她,这时候就用到了sqlconnection,用connection对象需引入命名空间using System.Data.SqlClient;

            SqlConnection con = new SqlConnection(conStr);

        ⑤.和数据库建立连接

             con.open();//打开数据库连接

        ⑥.连接之后要得到sql语句

             string sql="select loginid,name,loginpwd,address,phone,mail from Users";

        ⑦.sql语句有了,就要创建一个对象去执行sql语句

            sqlcommand cmd=new sqlcommand(sql,con);  //需传入两个参数

        ⑧.对象有了之后,我们就要通过对象去执行sql语句,怎么执行呢?

    //"select loginid,name,loginpwd,address,phone,mail from Users";这是一个结果集
    //cmd.ExecuteReader();通过这个结果获得查询结果,返回的是sqlDataReader类型
    //我们要定义一个变量用于储存查询的结果
    sqlDataReader dr=cmd.ExecuteReader();

        ⑨.结果要显示在页面中,我们需要有个东西接收它,我们就用到了一个控件GridView

           直接把控件拖过来放到前端页面,div里,表格需要指出数据库对应的是哪一列?编辑列->添加BoundField

           

       ⑩.设置好之后,GridView里面还没有数据,这时候就需要指定数据源

         GridView1.DataSource = dr;

       ⑪.有了数据源之后需要把它绑定到GridView里面

         GridView.DataBind();

       ⑫.用完之后,就要关闭,不然就会一直占用,其它地方也用不了

          dr.Dispose();//释放资源
          dr.Close();//关闭连接
          con.Dispose();
          con.Close();

           还有另外一种方式: 

          using( cmd = new SqlCommand(sql,con))
             //对象有了,我们要通过对象去执行sql语句
              {
                  using (dr = cmd.ExecuteReader())
                  {
                      IdGridView.DataSource = dr;
                      IdGridView.DataBind();
                  }

            

       源代码:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!--
     3   有关如何配置 ASP.NET 应用程序的详细信息,请访问
     4   http://go.microsoft.com/fwlink/?LinkId=169433
     5   -->
     6 <configuration>
     7   <connectionStrings>
     8     <add name="MyBookShop" connectionString="server=.;Database=MyBookShop; Integrated Security=false;Uid=sa; password=123456;" providerName="System.Data.SqlClient"/>
     9   </connectionStrings>
    10   <system.web>
    11     <compilation debug="true" targetFramework="4.5" />
    12     <httpRuntime targetFramework="4.5" />
    13   </system.web>
    14 </configuration>
    web.config
     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="head.aspx.cs" Inherits="myproject1.head" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     8     <title></title>
     9     <link href="css/head.css" rel="stylesheet" />
    10 </head>
    11 <body>
    12     <form id="form1" runat="server">
    13     <div class="gv">
    14                 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    15             <Columns>
    16                 <asp:BoundField DataField="ID" HeaderText="ID" />
    17                 <asp:BoundField DataField="loginid" HeaderText="用户名" />
    18                 <asp:BoundField DataField="name" HeaderText="姓名" />
    19                 <asp:BoundField DataField="loginpwd" HeaderText="pwd" />
    20                 <asp:BoundField DataField="Address" HeaderText="地址" />
    21                 <asp:BoundField DataField="classname" HeaderText="班级" />
    22             </Columns>
    23         </asp:GridView>
    24     </div>
    25     </form>
    26 </body>
    27 </html>
    head
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 using System.Configuration;
     8 using System.Data.SqlClient;
     9 using System.Text;
    10 
    11 namespace myproject1
    12 {
    13     public partial class head : System.Web.UI.Page
    14     {
    15         private string constr = ConfigurationManager.ConnectionStrings["MyBookShop"].ToString();
    16         SqlConnection con = null;//相当于号码
    17         SqlCommand cmd = null;//执行sql语句
    18         SqlDataReader dr = null;//用于储存查询结果
    19         protected void Page_Load(object sender, EventArgs e)
    20         {
    21             con = new SqlConnection(constr);//号码
    22             con.Open();//有了号码之后要打开微信
    23             string sql = "select ID,loginid,name,loginpwd,Address,classname from Users where 1=1";
    24             cmd = new SqlCommand(sql, con);
    25             dr = cmd.ExecuteReader();
    26             GridView1.DataSource = dr;
    27             GridView1.DataBind();
    28             dr.Dispose();//释放资源
    29             dr.Close();//关闭连接
    30             con.Dispose();
    31             con.Close();
    32         }
    33 
    34         protected void Button1_Click(object sender, EventArgs e)
    35         {
    36 
    37         }
    38     }
    39 }
    head.aspx.cs

       效果:

          

      5.我们添加一个用户名查找,选择班级查找功能:

      源代码:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!--
     3   有关如何配置 ASP.NET 应用程序的详细信息,请访问
     4   http://go.microsoft.com/fwlink/?LinkId=169433
     5   -->
     6 <configuration>
     7   <connectionStrings>
     8     <add name="MyBookShop" connectionString="server=.;Database=MyBookShop; Integrated Security=false;Uid=sa; password=123456;" providerName="System.Data.SqlClient"/>
     9   </connectionStrings>
    10   <system.web>
    11     <compilation debug="true" targetFramework="4.5" />
    12     <httpRuntime targetFramework="4.5" />
    13   </system.web>
    14 </configuration>
    web.config
     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="head.aspx.cs" Inherits="myproject1.head" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     8     <title></title>
     9     <link href="css/head.css" rel="stylesheet" />
    10 </head>
    11 <body>
    12     <form id="form1" runat="server">
    13     <div class="gv">
    14         <table>
    15             <tr>
    16                 <td>用户名:</td>
    17                 <td>
    18                     <asp:TextBox ID="TextBox1" runat="server" Width="132px"></asp:TextBox>
    19                 </td>
    20                 <td>班级:</td>
    21                 <td>
    22                     <asp:DropDownList ID="ddlclass" runat="server">
    23                         <asp:ListItem>--请选择--</asp:ListItem>
    24                         <asp:ListItem>微软一班</asp:ListItem>
    25                         <asp:ListItem>微软二班</asp:ListItem>
    26                         <asp:ListItem>微软三班</asp:ListItem>
    27                         <asp:ListItem>微软四班</asp:ListItem>
    28                         <asp:ListItem>微软五班</asp:ListItem>
    29                         <asp:ListItem>微软六班</asp:ListItem>
    30                         <asp:ListItem>视觉一班</asp:ListItem>
    31                     </asp:DropDownList>
    32                 </td>
    33                 <td>
    34                     <asp:Button ID="Button1" runat="server" Text="查询" OnClick="Button1_Click" />
    35                 </td>
    36             </tr>
    37         </table>
    38         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    39             <Columns>
    40                 <asp:BoundField DataField="ID" HeaderText="ID" />
    41                 <asp:BoundField DataField="loginid" HeaderText="用户名" />
    42                 <asp:BoundField DataField="name" HeaderText="姓名" />
    43                 <asp:BoundField DataField="loginpwd" HeaderText="pwd" />
    44                 <asp:BoundField DataField="Address" HeaderText="地址" />
    45                 <asp:BoundField DataField="classname" HeaderText="班级" />
    46             </Columns>
    47         </asp:GridView>
    48     </div>
    49     </form>
    50 </body>
    51 </html>
    head.aspx
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 using System.Configuration;
     8 using System.Data.SqlClient;
     9 using System.Text;
    10 
    11 namespace _20160520
    12 {
    13     public partial class head: System.Web.UI.Page
    14     {
    15         //假如页面多,每个页面都要写一个连接字符串,所以我们一般放在配置文件中
    16         //string strstring = "server=.; Database=MyBookShop;Integrated Security=false;Uid=sa;Pwd=123456";
    17        // string connStr = "Database=Student;Server=.;Integrated Security=false;Uid=sa;Password=123;";     
    18 
    19         //通过这个类ConfigurationManager获取web.confiig里面的节点名称来获取连接的字符串
    20        private string conStr = ConfigurationManager.ConnectionStrings["MyBookShop"].ToString();
    21         //把这个字符串传进去
    22        //SqlConnection con = new SqlConnection(conStr);
    23        SqlConnection con = null;//相当于是电话
    24        SqlCommand cmd = null;//执行sql语句
    25        SqlDataReader dr = null;//用于储存查询结果
    26         //页面一运行就执行这里面的内容
    27         protected void Page_Load(object sender, EventArgs e)
    28         {
    29             BindUser();
    30         }
    31         public void BindUser()
    32         {
    33             con=new SqlConnection(conStr);
    34             con.Open();//和数据库建立起了连接
    35             //得到sql语句
    36             //string sql = "select loginid,name,loginpwd,address,ClassName,mail from Users";
    37             string sql = Getswhere();
    38             //执行sql语句
    39             using( cmd = new SqlCommand(sql,con))
    40             //对象有了,我们要通过对象去执行sql语句
    41             {
    42                 using (dr = cmd.ExecuteReader())
    43                 {
    44                     IdGridView.DataSource = dr;
    45                     IdGridView.DataBind();
    46                 }
    47             //dr.Dispose();//释放资源
    48             //dr.Close();//关闭连接
    49             //con.Dispose();
    50             //con.Close();
    51             }
    52         }
    53         protected void btnsel_Click(object sender, EventArgs e)
    54         {
    55 
    56         }
    57         //我们需要得到where后面
    58         public string Getswhere() 
    59         {
    60             StringBuilder sb = new StringBuilder();
    61             sb.Append("select id,name,loginpwd,address,ClassName,mail from Users where 1=1");
    62             //获取到它的用户名
    63             string name = TxtUserName.Text.Trim();
    64             if(!string.IsNullOrEmpty(name))
    65             {
    66                 sb.Append(string.Format("and name='{0}'", name));
    67             }
    68             if(ddlsclass.SelectedIndex>0)
    69             {
    70                 sb.Append(string.Format("and ClassName='{0}'", ddlsclass.SelectedValue));
    71             }
    72             return sb.ToString();
    73         }
    74     }
    75 }
    head.aspx.cs

        效果就是这样喽:

       

  • 相关阅读:
    P4097 [HEOI2013]Segment(李超线段树模板)
    P2155 [SDOI2008]沙拉公主的困惑
    BZOJ3675 [Apio2014]序列分割[斜率优化dp]
    hdu4261 Estimation[暴力dp+对顶堆]
    poj2374 Fence Obstacle Course[线段树+DP]
    poj1463 Strategic game[树形DP]
    CH5E02 [IOI1999]花店橱窗[暴力dp]
    CH5E01[NOIP2010] 乌龟棋[暴力]
    CH5702 Count The Repetitions[倍增dp]
    P1081 [NOIP2012]开车旅行[倍增]
  • 原文地址:https://www.cnblogs.com/wangwangwangMax/p/5511638.html
Copyright © 2020-2023  润新知