在学习ASP.NET Quickstart Tutorials的过程中,我遇到一个最难理解的问题
见http://www.dotnetjunkies.com/QuickStartv20/util/srcview.aspx?path=~/aspnet/samples/data/GridViewObject.src&file=GridViewObject_cs\App_Code\AuthorsComponent.cs
希望可以帮我解答下这里面的泛型的具体意义,还有数据读取层和业务逻辑层的理解!!
见http://www.dotnetjunkies.com/QuickStartv20/util/srcview.aspx?path=~/aspnet/samples/data/GridViewObject.src&file=GridViewObject_cs\App_Code\AuthorsComponent.cs
希望可以帮我解答下这里面的泛型的具体意义,还有数据读取层和业务逻辑层的理解!!
解决方案 »
- IIS配置asp.net网站(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)
- C# 泛型视频
- 用js怎么控制iframe
- 使用NHibernate的朋友,你们是怎样实现数据控件(如Repeater)的嵌套的.
- 关于asp.net中控制Mediaplayer问题。
- 就web.config 加密数据库连接 请教下
- Asp.Net中TreeView控件的问题
- 关于绿色软件的问题,高手们指点一下。
- 前台的事件当中怎么调用后台事件.
- 下面的怎么改,谢谢!
- 我在根目录下开发的该怎么部署呢?
- Microsoft Visual Web Developer 2005 Express Edition(beta2)中的源代码管理问题!
using System.Data;
using System.Collections.Generic;public class AuthorsComponent
{
public AuthorsComponent ()
{
// TODO: Add constructor logic here
} public List<Author> GetAuthorsByState (String state, String sortExpression)
{
List<Author> authors = new List<Author> ();
DataSet ds = AuthorsDB.GetAuthorsByState (state); foreach (DataRow row in ds.Tables[0].Rows)
{
authors.Add (new Author ((String)row["au_id"], (String)row["au_fname"], (String)row["au_lname"], (String)row["state"]));
} authors.Sort(new AuthorComparer(sortExpression));
return authors;
} public int UpdateAuthor (string ID, string LastName, string Name, string State)
{
return AuthorsDB.UpdateAuthor (ID, LastName, Name, State);
} public int UpdateAuthor(Author a)
{
return AuthorsDB.UpdateAuthor(a.ID, a.LastName, a.Name, a.State);
} public List<String> GetStates()
{
List<String> states = new List<String>();
DataSet ds = AuthorsDB.GetStates(); foreach (DataRow row in ds.Tables[0].Rows)
{
states.Add((String)row["state"]);
}
return states;
}
}public class AuthorComparer : IComparer<Author>
{
private string _sortColumn;
private bool _reverse; public AuthorComparer(string sortExpression)
{
_reverse = sortExpression.ToLowerInvariant().EndsWith(" desc");
if (_reverse)
{
_sortColumn = sortExpression.Substring(0, sortExpression.Length - 5);
}
else
{
_sortColumn = sortExpression;
}
} public int Compare(Author a, Author b)
{
int retVal = 0;
switch (_sortColumn)
{
case "ID":
retVal = String.Compare(a.ID, b.ID, StringComparison.InvariantCultureIgnoreCase);
break;
case "Name":
retVal = String.Compare(a.Name, b.Name, StringComparison.InvariantCultureIgnoreCase);
break;
case "LastName":
retVal = String.Compare(a.LastName, b.LastName, StringComparison.InvariantCultureIgnoreCase);
break;
case "State":
retVal = String.Compare(a.State, b.State, StringComparison.InvariantCultureIgnoreCase);
break;
}
return (retVal * (_reverse ? -1 : 1));
}
}