一、ADO.NET 访问数据
ADO.NET 提供了用于完成数据库连接、查询数据、插入数据、更新数据和删除数据等操作的对象。
主要包括五个对象
1、Connection对象:用来连接数据库。
2、Command对象:用来对数据库执行SQL命令。
3、DataReader对象:用来从数据库中返回只读数据。
4、DataAdapter对象:用来从数据库中返回数据,并填充到DataSet对象中,还要负责保证DataSet对象中的数据和数据库中的数据保持一致。
5、DataSet对象:可以看作是内存中的数据库。
这五个对象提供了两种读取数据库的方式:
一是利用Connection、Command和DataReader对象,这种方式只能读取数据库;
二是利用Connection、Command、DataAdapter和DataSet对象,这种方式可以对数据库进行各种操作。
要把访问到的数据显示出来,就需要数据绑定控件,此处使用GridView控件
前端WebForm1.aspx代码
|
数据源控件若要显示数据,需要设置数据源的DataSource属性为查询结果,并调用DataBind()方法显示数据
后端WebForm1.aspx.cs代码
using System; using System.Data; using System.Data.SqlClient; namespace ASPSQL { public partial class WebForm1 : System.Web.UI.Page { string constr = “server=127.0.0.1,14133;database=serverdb;Integrated Security=True;”; protected void Page_Load(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(constr); string comstr = “select * from sensorinfo”; SqlCommand cmd = new SqlCommand(comstr, conn); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); conn.Open(); adapter.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind(); conn.Dispose(); } } } |
控件中的每个GridView列都由一个DataControlField对象表示。默认情况下,AutoGenerateColumns属性设置为true,这会为数据源中的每个字段创建一个AutoGenerateField对象,然后每个字段将按照每个字段在GridView数据源中的显示顺序呈现为控件中的列。
SqlDataAdapter.Fill(DataSet) :在DataSet中添加或刷新行。
GridView.DataSource :获取或设置对象,控件从该对象中检索其数据项列表。
GridView.DataBind:将数据源绑定到GridView控件。
运行后页面如下
二、数据源控件访问数据
ADO.NET 提供了多种不同的数据源控件
1、EntityDataSource:用于访问基于实体数据模型的数据。
2、LinqDataSource:利用LINQ技术访问数据库。
3、ObjectDataSource:用于访问多层Web应用程序体系结构中的中间层业务数据对象。
4、SiteMapDataSource:用于访问XML格式的网站地图文件Web.sitemap。
5、SqlDataSource:用于访问Access、SQL Server、SQL Server Express、Oracle、ODBC数据源和OLEDB数据源。
6、XmlDataSource用于访问具有“层次化数据”特性的XML数据源。
在VisualStudio中SqlDataSource默认不安装,在Visual Studio Installer程序“单个组件”选项页中,找到“云、数据库和服务器”-“SQL Server Data Tools”后安装。
1、创建Web窗体文件(WebForm1.aspx)后,将“工具箱”-“数据”-“SqlDataSource”控件拖入aspx文件设计窗口中
点击控件”配置数据源”
2、将“工具箱”-“数据”-“GridView”控件拖入aspx文件设计窗口中,为控件”选择数据源”
查看WebForm1.aspx的”源”视图,可以看到源代码
” ProviderName=”” SelectCommand=”SELECT * FROM [channelInfo]”>
|
连接字符串包含了访问数据库的相关信息,通常存储在Web.config文件的元素中。
SQL Server数据库的身份验证有Windows验证和SQL Server验证两种模式。
各参数具体含义如下
1、Server参数:数据库服务器,使用方式为“Server=服务器名“,其中服务器名就是数据库服务器的实例名称。该参数在设置的时候还可以使用Data 2、Source、Address、Addr。
3、Database参数:使用的数据库名称。该参数还有一个别名Initial Catalog,也可以设置为“Initial Catalog=数据库名“
UserID 与Password参数:UserID为连接数据库验证用户名,也可以使用UID,Password为连接数据库验证密码,也可以使用PWD
如果SQL Server设置为Windows登陆,则需要使用Trusted_Connection=SSPI或Trusted_Connection=true或Integrated Security=SSPI来进行登陆,表示以当前Windows系统用户身份去登陆SQL SERVER服务器(信任连接)。
运行后页面如下
三、LINQ访问数据
LINQ有不同的LINQ类型
LINQ to Objects:用于处理Array和List等集合类型数据;
LINQ to XML 用于处理XML类型数据
LINQ to DataSet 用于处理DataSet类型数据
LINQ to SQL用于处理SQL Server数据库类型数据
LINQ to Entites用于处理实体数据模型
在VisualStudio中SqlDataSource默认不安装,在Visual Studio Installer程序“单个组件”-“代码工具”-“LINT to SQL工具”后安装。
“解决方案资源管理器”中右击项目名称,在弹出的菜单中选择”添加”-“新建项”-“LINQ to SQL类”
点击”服务器资源管理器”-右键点击”数据连接”-选择”添加连接”,添加SQL数据库
LINQ to SQL为关系数据库提供了一个对象模型,即将关系数据库映射为类对象,将左侧数据库中的数据表拖入DataClasses1.dbml窗口,将在DataClasses1.designer.cs中自动创建对应的类。
建立DataClasses1.dbml文件的同时同时创建DataClasses1.dbml.ayout和DataClasses1.designer.cs文件。
DataClasses1.dbml.layout定义了每个表的布局,DataClasses1.designer.cs定义了自动生成的类
DataClasses1DataContext类派生自DataContext,与SQL数据库对应。
创建类实例时
DataClasses2DataContext ds= new DataClasses2DataContext();
错误提示:不包含采用0个参数的构造函数
原因是类中没有定义无参数构造函数
可以在DataClasses1.designer.cs文件中创建无参数构造函数
public DataClasses1DataContext() : base(“Data Source=127.0.0.1,14133;Initial Catalog=serverdb;Integrated Security=True;Encrypt=False”, mappingSource) { OnCreated(); } |
在WebForm1.aspx.cs文件中创建查询函数
常使用关键字var的隐形变量存放返回的数据。
var变量可以不明确地指出数据类型,但编译器能根据变量的表达式推断出该变量的类型。
using System; using System.Linq; namespace WebApplication4 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DataClasses1DataContext ds= new DataClasses1DataContext(); var results = from r in ds.channelInfo select r.name; GridView1.DataSource = results; GridView1.DataBind(); } } } |
LINQ查询表达式类似于SQL语句,包含8个基本自居
查询表达式必须以from子句开始,以select或group子句结束,中间可以包含一个或多个from、where、orderby、group、join、let等子句。
在WebForm1.aspx文件中展示数据
|
运行后页面如下