网络工作室暑假后第一次培训资料(ADO.NET创建访问数据集)整理

简介:

转眼时间很快,还有两天,8天假期的黄金周放假就要结束了。学校出去旅游或者回家的同都陆陆续续的回学校了。假期中自己本来是想要回家的,但是最后还是取消了这个计划。原因有二,第一就是放假回家坐车的人实在太多,第二就是家里也没什么事,自己呢也不想家(特别想回家),所以就留在了学校。

前三天什么也没干,就是纯粹的玩。但是想想开学后就要开始给11级的同学培训了,所以就把资料提前准备一下。

安排的培训主要有三次大概内容如下:

1)ADO.NET的数据及的知识,主要是为了讲SQlHelper数据库访问通用类做铺垫

2)SQL Server的存储过程/分页,怎样通过ADO.NET调用存储过程/什么是表连接查询,多表查询,等一些数据库的知识

3)要简单的介绍一下三层架构的知识,这个对于开发大型项目和团队开发还是必须了解的,想的是做一个例子,让他们实际的看一看利弊,但是要想充分的理解三层架构的思想,基本的面相对象的知识是必须有的。还有就是网站开发过程中一些常用的JS,JQuery插件的使用。

下面的就是第一次培训内容的资料整理。

因为是访问数据库的知识,先把数据库中表的结构个字段展现出来,如图:



表的情况就是这个样子。

在实际的开发过程中程序员对数据库的操作主要是查询操作,而且不是直接操作的数据表,而是由DBA根据程序员的需要而创建的视图,程序员根据T-SQL语言操作视图。

ADO.NET对数据库的两种操作方式:

1)连接查询  2)非连接查询

首先要知道几个对象:connection ,command

1)连接查询使用的就是连接查询,在对数据库进行操作的时候,始终保持对数据库的连接。相对于数据集的操作方式,操作效率高。

Datareader对象就是完成该操作的对象。

在使用过该对象后,应该立即调用connection对象的close方法关闭数据库连接。

备注:或者使用commandbehavior.Closeconnection()对象关闭数据库连接。

Commandbehavior是枚举类型。

实例演示,首先在配置文件中创建好数据库连接字符串的节点



 
 
  1. <!--在配置文件中配置了数据库连接字符串-->

  2. <connectionStrings>

  3. <addname="ConnectionString"connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=iLeague;Integrated Security=True"/>

  4. </connectionStrings>


l具体的对数据库的操作看下面的代码演示:



 
 
  1. using System;

  2. using System.Collections.Generic;

  3. using System.Web;

  4. using System.Web.UI;

  5. using System.Web.UI.WebControls;

  6. using System.Data;

  7. using System.Data.SqlClient;

  8. using System.Configuration;

  9. public partial class _Default : System.Web.UI.Page  

  10. {

  11. //首先引入Configuration命名空间,然后声明全局的strConnection的全局变量,读取配置文件中的数据库连接字符串

  12. string  strConString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

  13. protectedvoid Page_Load(object sender, EventArgs e)

  14.    {

  15.        ShowData();

  16. //Response.Write(con.State);

  17.    }

  18. publicvoid ShowData()

  19.    {

  20.        SqlConnection con = new SqlConnection(strConString);

  21. //SqlCommand cmd = new SqlCommand("select * from T_Activity",con);

  22.        SqlCommand cmd = con.CreateCommand();

  23.        cmd.CommandText = "select * from T_Activity where id=2";

  24.        con.Open();

  25.        SqlDataReader reader=cmd.ExecuteReader();

  26. //可以使用CommandBehavior这个枚举类型在完成数据库操作后自动关闭数据库连接

  27. // SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

  28. if(reader.Read())

  29.        {

  30. this.Label1.Text=reader[1].ToString();

  31. //this.Label1.Text = reader["activityName"].ToString();

  32.        }

  33.        con.Close();

  34.        reader.Dispose();

  35.    }

  36. }


这样就完成了ADO.NET对数据库的连接式的查询。

下面来看看非连接查询

ADO.NET对数据库的非连接查询

1)这里需要介绍三个对象dataadapter,dataset,datatable

dataAdapter对象也称为数据适配器对象。 Dataadapter对象使用connection对象连接数据源,使用数据库命令的command对象执行SQl操作将检索出的数据送往数据集对象Dataset,或者将数据集中的数据编辑过后再次送往数据库。

数据适配器将数据填入数据集时调用Fill()方法,语句:

Dataadapter.Fill(datatable);//直接填充表

或者

Dataadapter.Fill(dataset,“例子表”)//填充dataset数据集中的“例子表”

完成后自动关闭数据库连接。如果填充前数据库是打开的,则在完成填充后,要把数据库连接仍旧大概,根据需要是否要关闭或则打开数据库。

Dataadapter调用Fill方法时,将使用与之相关的命令组件执行SQl语句将检索出的数据添加到Dataset对象中的datatable对象中(如果datatable对象不存在,则自动创建该对象),或者直接填充到datatable的实例中。

执行SQl时候,必须保持与数据库进行连接有效。但是数据库连接是否打开则不是必需的,如果数据库连接是关闭的,则自动打开检索数据,完成后,


完成后自动关闭数据库连接。如果填充前数据库是打开的,则在完成填充后,要把数据库连接仍旧大概,根据需要是否要关闭或则打开数据库。


DataSet对象


DataSet对象也称数据集对象。DataSet对象用于表示那些存储在内存中的数据,它相当于内存中的一个数据库,他可以包括多个DataTable对象。DataSet对象主要用于管理存储在内存中的数据及对数据的断开操作。


由于DataSet对象提供的是非连接数据库的数据源,这样减轻了数据库及网络的资源。

看下面的代码演示:



 
 
  1. using System;

  2. using System.Collections.Generic;

  3. using System.Web;

  4. using System.Web.UI;

  5. using System.Web.UI.WebControls;

  6. using System.Data;

  7. using System.Data.SqlClient;

  8. using System.Configuration;

  9. public partial class DataAdapter和DataSet对象的使用 : System.Web.UI.Page

  10. {

  11. //首先引入Configuration命名空间,然后声明全局的strConnection的全局变量,读取配置文件中的数据库连接字符串

  12. string strConString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

  13. protectedvoid Page_Load(object sender, EventArgs e)

  14.    {

  15.        ShowData1();

  16.    }

  17. /// <summary>

  18. /// 第一种填充数据集的方法

  19. /// </summary>

  20. publicvoid ShowData1()

  21.    {

  22.        SqlConnection con = new SqlConnection(strConString);

  23.        SqlCommand cmd = new SqlCommand("select * from T_Activity where id=2", con);

  24. //实例化DataAdapter对象,并且将数据库操作命令传递给数据源

  25.        SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  26. //实例化DataTable对象

  27.        DataTable table = new DataTable();

  28. //将数据适配器对象DataAdapter对象操作数据库返回的数据,填充到DataTable中

  29.        adapter.Fill(table);

  30. //读取Datatable中的数据

  31.        Response.Write(table.Rows[0]["id"].ToString());

  32.    }

  33. /// <summary>

  34. /// 第二种填充数据集的方法

  35. /// </summary>

  36. publicvoid ShowData2()

  37.    {

  38.        SqlConnection con = new SqlConnection(strConString);

  39. //实例化DataAdapter对象,根据SqlDataAdapter对象的重载将数据库操作命令,传递给数据源

  40.        SqlDataAdapter adapter = new SqlDataAdapter("select * from T_Activity where id=2", con);

  41.        DataSet Ds = new DataSet();

  42. //数据适配器将数据填入数据集中的T_Activity表

  43.        adapter.Fill(Ds, "T_Activity");

  44. //填充数据到DataTable

  45.        DataTable table = Ds.Tables["T_Activity"];

  46.        Response.Write(table.Rows[0]["id"].ToString());

  47.    }

  48. }



第三个对象就是DataTable对象

DataTable对象

DatatTable是ADO.NET库中的核心对象,有行也有列。

主要包括DataRow和DataColumn,分别代表行和列。

1)数据行(DataRow)

数据行是给定数据表中的一行数据,或者说是数据表中的一条记录

提取数据表中的行的语句:

DataRow  Dr=dt。Rows[n];

其中:DataRow代表数据行类,Dr代表数据行对象,dt是数据表对象。n代表的是行序号,并且从0开始。

2)数据列(DataColumn)

数据表中的数据列(字段或者属性)定义了表的结构。

某列的值需要在数据行的基础上进行,

string  dc=dr.Column[“字段名”].ToString();

或者string  dc=dr.Column[i].ToString();//i表示对应列的索引

具体的访问数据库的代码,看下面:



 
 
  1. using System;

  2. using System.Collections.Generic;

  3. using System.Web;

  4. using System.Web.UI;

  5. using System.Web.UI.WebControls;

  6. using System.Data;

  7. using System.Data.SqlClient;

  8. using System.Configuration;

  9. public partial class Datatable对象的使用 : System.Web.UI.Page

  10. {

  11. //首先引入Configuration命名空间,然后声明全局的strConnection的全局变量,读取配置文件中的数据库连接字符串

  12. string strConString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

  13. protectedvoid Page_Load(object sender, EventArgs e)

  14.    {

  15.        ShowData();

  16.    }

  17. //用来显示数据

  18. publicvoid ShowData()

  19.    {

  20.        SqlConnection con = new SqlConnection(strConString);

  21.        SqlCommand cmd = new SqlCommand("select * from T_Activity ", con);

  22.        SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  23.        DataTable table = new DataTable();

  24. //填充数据集中的table

  25.        adapter.Fill(table);

  26. //使用DataRow对象访问数据表中索引行为第5行的数据行

  27.        DataRow Dr=table.Rows[4];

  28. //根据数据行对象访问所在行的对应索引列为“activityName”所对应的值

  29. string strActivityName=Dr["activityName"].ToString();

  30.        Response.Write(strActivityName);

  31.    }

  32. }


这样就完成了ADO.NET 中所有创建数据集,访问数据集。


     本文转自yisuowushinian 51CTO博客,原文链接:http://blog.51cto.com/yisuowushinian/1013488,如需转载请自行联系原作者



相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
277 7
|
3月前
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
871 0
|
5月前
|
消息中间件 存储 Serverless
函数计算产品使用问题之怎么访问网络附加存储(NAS)存储模型文件
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
11天前
|
SQL 运维 安全
网络安全等级保护2.0 定级、评测、实施与运维-复习题目资料
本文详细总结了网络信息安全等级保护的练习题,包括单选题、多选题、判断题和简答题。供朋友们参考复习,学习相关领域知识参考。
|
12天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
29 2
|
2月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
74 6
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
122 4
|
2月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
4月前
|
运维 架构师 云栖大会
2024云栖大会 | 阿里云网络技术Session主题资料和视频回放归档(更新中)
2024年9月19日-21日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,围绕增强确定性、深度可观测、高效自动化和敏捷全球化带来技术、产品和服务升级,以及全新的生态伙伴合作构建。
653 10
|
3月前
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
127 0