欢迎光临
我们一直在努力

《ASP.Net快速入门》学习笔记1-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

最常使用的对象基本上有三种:连接、命令和数据集。

  • 连接表示与某些数据存储区(如 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>

在本节开始已经提到,dataset 以独立于实际数据源的方式被设计为抽象数据。通过将示例的重点从 sql 改为 xml,可以明白这一点。dataset 支持将 filestream 对象用作参数的 readxml 方法。在这种情况
下读取的文件必须同时包含希望读取的架构和数据。

也可以分别读取数据和架构,使用 dataset 的 readxmldata 和 readxmlschema 方法

  1. 公共语言运行库的托管数据访问 api 抽象数据并用一致的方式表示它,与实际的数据源(sql server、oledb、xml 等)无关。
  2. 为了使页能够访问执行 sql 数据访问所需的类,必须将 system.data 和 system.data.sqlclient 命名空间导入到页中。
  3. 从 sql 查询填充数据集涉及创建 sqlconnection、将 sqldataadapter 对象与包含查询语句的连接关联和从命令填充数据集。
  4. datagrid 控件支持采用 ienumerable(或 icollection)类型的 datasource 属性。通过分配 dataset 的 defaultview 属性(dataview 类型),可以将此设置为 sql 查询的结果。
  5. sqldataadapter 维护一个可用于用值替换变量标识符(由名称前的“@”表示)的 parameters
    集合。
  6. 当执行不要求返回数据的命令(如插入、更新和删除)时,使用 sqlcommand,而不是 sqldataadapter。该命令通过调用 executenonquery 方法发出,而该方法返回受影响的行数。
  7. 使用 sqlcommand 时必须显式打开 sqlconnection(sqldataadapter 自动地为您处理打开连接)。始终记住在页完成执行前关闭与数据模型的 sqlconnection。如果没有关闭连接,则可能会在等待页实例被垃圾收集回收时不经意超过连接限制。
  8. 为了允许对行进行编辑,datagrid 支持整型 edititemindex 属性,该属性指示网格的哪一行应该
    是可编辑的。设置了该属性后,datagrid 按该索引将行呈现为文本输入框,而不是简单的标签。
  9. datagrid 公开一个可设置为主键字段名的 datakeyfield 属性。在连到 updatecommand 的事件
    处理程序中,可以从 datagrid 的 datakeys 集合检索键名。
  10. 使用 datagrid 中的 boundcolumn 控件使您可以完全控制列的顺序,以及它们的 readonly 属性。
  11. 使用 datagrid 中的 templatecolumn 控件使您可以完全控制列的内容。
  12. buttoncolumn 控件可用于在该列的每一行中仅呈现按钮控件,而该列可与事件关联。
  13. hyperlinkcolumn 可以添加到 datagrid 的 columns 集合,该集合支持在单击链接时定位到另一页。
  14. 当 datagrid 的 allowsorting 属性设置为 true 时,它呈现将 sort 命令激发回网格的列标头的
    超级链接。将 datagrid 的 onsortcommand 属性设置为当用户单击列链接时要调用的处理程序。
  15. dataset 支持将 filestream 作为参数的 readxml、readxmldata 和 readxmlschema 方法,而该参数可用于从 xml 文件填充 dataset。
  16. 使用存储过程可以减少在应用程序中执行繁重的数据库操作的开销。

datalist 和 repeater 也支持 datasource 属性,该属性(datasource)可设置为任何 icollection、ienumerable 或 ilistsource 类型

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 《ASP.Net快速入门》学习笔记1-.NET教程,Asp.Net开发
分享到: 更多 (0)