zoukankan      html  css  js  c++  java
  • ASP.NET动态网站制作(24)-- ADO.NET(3)

    前言:ADO.NET的第三节课。今天主要讲SQL Helper。

    内容

      1.DataReader和DataSet的区别:

      (1)DataReader是一行一行地读,且只能向前读;DataSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低。

      (2)DataReader需要一直和数据库保持连接,DataSet读取完后即和数据库断开。

      (3)DataSet里面可以存储多个结果集(DataTable)。

      (4)DataSet可以对数据进行缓存,而DataTable不行。

      做大型网站的时候需要涉及到缓存技术。

      2.SQL Helper是一个基于.NET Framework的数据库操作组件,组件中包含数据库的操作方法,其用于简化重复地写数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SQL Helper封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,变得方便了很多。

      SqlHelper.cs:

     1 using System;
     2 using System.Data;
     3 using System.Data.SqlClient;
     4 
     5 namespace SqlHelper
     6 {
     7     public class SqlHelper
     8     {
     9         //定义一个字符串变量,把数据库连接字符串赋值给它,也可以把连接字符串添加到配置文件,这样项目也可以方便访问,这里是为了清楚直接复值到字符串变量
    10         private static string connstr =
    11             "Data Source=127.0.0.1\SQL2008; Initial Catalog=Test; User ID=test; Password=test";
    12 
    13         //执行查询语句并返回一个内存中的数据表
    14         public DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
    15         {
    16             using (SqlConnection conn = new SqlConnection(connstr)) //连接到数据库
    17             {
    18                 conn.Open();    //打开数据库连接
    19                 using (SqlCommand cmd = conn.CreateCommand())   //创建执行对象
    20                 {
    21                     cmd.CommandText = sql;  //给cmd赋值sql语句
    22                     cmd.Parameters.AddRange(parameters);    //把sql语句参数添加到cmd
    23                     DataSet dataSet = new DataSet();    //创建DataSet对象,用于保存查询结果
    24 
    25                     SqlDataAdapter adapter = new SqlDataAdapter(cmd);   //执行cmd,更新数据结果到adapter对象
    26                     adapter.Fill(dataSet);  //把结果添加到DataSet对象中
    27 
    28                     return dataSet.Tables[0];   //返回一个查询结果的一个表
    29                 }
    30             }
    31         }
    32 
    33         //执行查询语句返回结果集合的第一行第一列
    34         public Object ExecuteScalar(string sql, params SqlParameter[] parameters)
    35         {
    36             using (SqlConnection conn = new SqlConnection(connstr))
    37             {
    38                 conn.Open();
    39                 using (SqlCommand cmd = conn.CreateCommand())
    40                 {
    41                     cmd.CommandText = sql;
    42                     cmd.Parameters.AddRange(parameters);
    43                     return cmd.ExecuteScalar(); //执行查询,返回查询结果的第一行的第一列
    44                 }
    45             }
    46         }
    47         
    48         //执行参数化SQL语句,返回受影响的行数
    49         public int ExecuteNoneQuery(string sql, params SqlParameter[] parameters)
    50         {
    51             using (SqlConnection conn = new SqlConnection(connstr))
    52             {
    53                 conn.Open();
    54                 using (SqlCommand cmd = conn.CreateCommand())
    55                 {
    56                     cmd.CommandText = sql;
    57                     cmd.Parameters.AddRange(parameters);
    58                     return cmd.ExecuteNonQuery();   //执行数据库语句并返回受影响的行数
    59                 }
    60             }
    61         }
    62     }
    63 }

      3.老师现场写代码,涉及到了很多知识点,得好好消化一下了。

    后记:多多练习。

  • 相关阅读:
    如何在三维坐标中选择点
    java slider
    java combobox 多选框
    java BorderFrame.java
    java radioButton
    java checkbox
    java 文本窗口
    constexpr
    测试框架
    java 计算器
  • 原文地址:https://www.cnblogs.com/zoe-yan/p/4936012.html
Copyright © 2011-2022 走看看