Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->ASP.NET ->正文

“ASP.Net快速入门”学习笔记

来源:Linuxdby.com 作者:Webmaster 时间:2007-04-12 点击: [收藏] [投稿]
最常使用的对象基本上有三种:连接、命令和数据集。
  • 连接表示与某些数据存储区(如 SQL Server 或 XML 文件)的物理连接。
  • 命令表示从数据存储区检索(选择)或对数据存储区进行操作(插入、更新、删除)的指令。
  • 数据集表示应用程序使用的实际数据。注意,数据集总是同它们的源连接和数据模型断开并可独立
    修改。不过,数据集的更改可以很容易与起始数据模型相协调。

使用数据集的好处是它为您提供了断开连接的数据库视图。可以在应用程序中操作数据集,然后在以后协
调更改和实际的数据库。对于长期运行的应用程序,这通常是最好的方法。对于 Web 应用程序,通常对
每个请求执行短操作(一般只是显示数据)。通常不需要在一系列请求间保持 DataSet 对象。对于这类
情况,可以使用 SqlDataReader

SqlDataReader 对从 SQL 数据库检索的数据提供仅向前的只读指针。若要使用 SqlDataReader,请声明 SqlCommand 而不是 SqlDataAdapterSqlCommand 公开返回 SqlDataReaderExecuteReader 方法。还请注意,当使用 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();等效
重要说明: 注意 DataGridEnableViewState 属性已设置为 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 控件不为您显式排序它的数据,但它确实提供一种方法,在用户单击可用来排序数据的列标头时调用事件处理程序。当 DataGridAllowSorting 属性设置为 true 时,它呈现把 Sort 命令激发回网格的列标头的超级链接。把 DataGridOnSortCommand 属性设置为当用户单击列链接时要调用的处理程序。列的名称作为 DataGridSortCommandEventArgs 参数上的 SortExpression 属性传递,该参数可用来设置绑定到网格的 DataViewSort 属性。下面的示例说明此过程。

<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>


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇: 使用FileUpload控件上传图片并自动生成缩略图   下一篇: ASP.NET 1.1 无 Cookie SessionID 重写

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章