分享
 
 
 

"ASP.Net快速入门"学习笔记

王朝asp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

最常使用的对象基本上有三种:连接、命令和数据集。连接表示与某些数据存储区(如 SQL Server 或 XML 文件)的物理连接。 命令表示从数据存储区检索(选择)或对数据存储区进行操作(插入、更新、删除)的指令。 数据集表示应用程序使用的实际数据。注意,数据集总是同它们的源连接和数据模型断开并可独立

修改。不过,数据集的更改可以很容易与起始数据模型相协调。 使用数据集的好处是它为您提供了断开连接的数据库视图。可以在应用程序中操作数据集,然后在以后协

调更改和实际的数据库。对于长期运行的应用程序,这通常是最好的方法。对于 Web 应用程序,通常对

每个请求执行短操作(一般只是显示数据)。通常不需要在一系列请求间保持 DataSet 对象。对于这类

情况,可以使用 SqlDataReader。

SqlDataReader 对从 SQL 数据库检索的数据提供仅向前的只读指针。若要使用 SqlDataReader,请声明 SqlCommand 而不是 SqlDataAdapter。SqlCommand 公开返回 SqlDataReader 的 ExecuteReader 方法。还请注意,当使用 SqlCommand 时,必须显式打开和关闭 SqlConnection。

重要说明:始终记住在页完成执行之前关闭与数据模型的连接。如果不关闭连接,则可能会在等待页实例被垃圾回收处理期间不经意地超过连接限制。

Server=(local);中的local,这样设置可以避免由于服务器IP地址变更而造成网站不能访问

常用的数据库绑定代码

SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes");

SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection);

DataSet ds = new DataSet();

myCommand.Fill(ds, "作者");

MyDataGrid.DataSource=ds.Tables["作者"].DefaultView;

MyDataGrid.DataBind();

当执行不要求返回数据的命令(如插入、更新和删除)时,也使用 SqlCommand。该命令通过调用 ExecuteNonQuery 方法发出,而该方法返回受影响的行数

DefaultView 属性表示 DataSet 中表的当前状态,包括应用程序代码所做的任何更改(例如,行删除或值更改)。设置了 DataSource 属性后,调用 DataBind() 填充控件。

MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;

MyDataGrid.DataBind();

与MyDataGrid.DataSource=ds;

MyDataGrid.DataMember="Authors";

MyDataGrid.DataBind();等效

重要说明: 注意 DataGrid 的 EnableViewState 属性已设置为 false。如果每个请

求中都要填充数据,让 DataGrid 存储将通过往返行程由窗体发送来发送的状态信息没有

好处。因为 DataGrid 在维护状态时存储其所有数据,适当时将其关闭很重要,这样可以

提高页面性能。

执行参数化选择代码

String selectCmd = "select * from Authors where state = @State";

SqlConnection myConnection = new SqlConnection("server=(local)

\\NetSDK;database=pubs;Trusted_Connection=yes");

SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd,

myConnection);

myCommand.SelectCommand.Parameters.Add(new SqlParameter

("@State", SqlDbType.NVarChar, 2));

myCommand.SelectCommand.Parameters["@State"].Value =

MySelect.Value;

DataSet ds = new DataSet();

myCommand.Fill(ds, "作者");

MyDataGrid.DataSource= ds.Tables["作者"].DefaultView;

MyDataGrid.DataBind();

对任何网格的共同要求是能够将它包含的数据排序。虽然 DataGrid 控件不为您显式排序它的数据,但它确实提供一种方法,在用户单击可用来排序数据的列标头时调用事件处理程序。当 DataGrid 的 AllowSorting 属性设置为 true 时,它呈现将 Sort 命令激发回网格的列标头的超级链接。将 DataGrid 的 OnSortCommand 属性设置为当用户单击列链接时要调用的处理程序。列的名称作为 DataGridSortCommandEventArgs 参数上的 SortExpression 属性传递,该参数可用来设置绑定到网格的 DataView 的 Sort 属性。下面的示例说明此过程。

<script>

protected void MyDataGrid_Sort(Object Src, DataGridSortCommandEven

tArgs E) {

...

DataView Source = ds.Tables["Authors"].DefaultView;

Source.Sort = E.SortExpression;

MyDataGrid.DataBind();

}

</script>

<form runat="server">

<ASP:DataGrid id="MyDataGrid" OnSortCommand="MyDataGrid_Sort"

AllowSorting="true" runat="server" />

</form>

<script>

Protected Sub MyDataGrid_Sort(Src As Object, E As DataGridSort

CommandEventArgs)

...

DataView Source = ds.Tables("Authors").DefaultView

Source.Sort = E.SortExpression

MyDataGrid.DataBind()

End Sub

</script>

<form runat="server">

<ASP:DataGrid id="MyDataGrid" OnSortCommand="MyDataGrid_Sort"

AllowSorting="true" runat="server" />

</form>

<script>

protected function MyDataGrid_Sort(Src:Object, E:DataGridSort

CommandEventArgs) : void {

...

var Source:DataView = ds.Tables["Authors"].DefaultView;

Source.Sort = E.SortExpression;

MyDataGrid.DataBind();

}

</script>

<form runat="server">

<ASP:DataGrid id="MyDataGrid" OnSortCommand="MyDataGrid_Sort"

AllowSorting="true" runat="server" />

</form>

在本节开始已经提到,DataSet 以独立于实际数据源的方式被设计为抽象数据。通过将示例的重点从 SQL 改为 XML,可以明白这一点。DataSet 支持将 FileStream 对象用作参数的 ReadXml 方法。在这种情况

下读取的文件必须同时包含希望读取的架构和数据。

也可以分别读取数据和架构,使用 DataSet 的 ReadXmlData 和 ReadXmlSchema 方法

公共语言运行库的托管数据访问 API 抽象数据并用一致的方式表示它,与实际的数据源(SQL Server、OLEDB、XML 等)无关。 为了使页能够访问执行 SQL 数据访问所需的类,必须将 System.Data 和 System.Data.SqlClient 命名空间导入到页中。 从 SQL 查询填充数据集涉及创建 SqlConnection、将 SqlDataAdapter 对象与包含查询语句的连接关联和从命令填充数据集。 DataGrid 控件支持采用 IEnumerable(或 ICollection)类型的 DataSource 属性。通过分配 DataSet 的 DefaultView 属性(DataView 类型),可以将此设置为 SQL 查询的结果。 SqlDataAdapter 维护一个可用于用值替换变量标识符(由名称前的“@”表示)的 Parameters

集合。 当执行不要求返回数据的命令(如插入、更新和删除)时,使用 SqlCommand,而不是 SqlDataAdapter。该命令通过调用 ExecuteNonQuery 方法发出,而该方法返回受影响的行数。 使用 SqlCommand 时必须显式打开 SqlConnection(SqlDataAdapter 自动地为您处理打开连接)。始终记住在页完成执行前关闭与数据模型的 SqlConnection。如果没有关闭连接,则可能会在等待页实例被垃圾收集回收时不经意超过连接限制。 为了允许对行进行编辑,DataGrid 支持整型 EditItemIndex 属性,该属性指示网格的哪一行应该

是可编辑的。设置了该属性后,DataGrid 按该索引将行呈现为文本输入框,而不是简单的标签。 DataGrid 公开一个可设置为主键字段名的 DataKeyField 属性。在连到 UpdateCommand 的事件

处理程序中,可以从 DataGrid 的 DataKeys 集合检索键名。 使用 DataGrid 中的 BoundColumn 控件使您可以完全控制列的顺序,以及它们的 ReadOnly 属性。 使用 DataGrid 中的 TemplateColumn 控件使您可以完全控制列的内容。 ButtonColumn 控件可用于在该列的每一行中仅呈现按钮控件,而该列可与事件关联。 HyperLinkColumn 可以添加到 DataGrid 的 Columns 集合,该集合支持在单击链接时定位到另一页。 当 DataGrid 的 AllowSorting 属性设置为 true 时,它呈现将 Sort 命令激发回网格的列标头的

超级链接。将 DataGrid 的 OnSortCommand 属性设置为当用户单击列链接时要调用的处理程序。 DataSet 支持将 FileStream 作为参数的 ReadXml、ReadXmlData 和 ReadXmlSchema 方法,而该参数可用于从 XML 文件填充 DataSet。 使用存储过程可以减少在应用程序中执行繁重的数据库操作的开销。 DataList 和 Repeater 也支持 DataSource 属性,该属性(DataSource)可设置为任何 ICollection、IEnumerable 或 IListSource 类型

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有