作为一个初学者,我想爆头了也想不出个所以然来,那位大哥解说一下,谢谢,一段读取数据源程序:var products = ProductManager.GetAllProductsDisplayedOnHomePage();
if (products.Count > 0)
{
dlCatalog.DataSource = products;
dlCatalog.DataBind();
}
----->2.
public static ProductCollection GetAllProductsDisplayedOnHomePage()
{
var dbCollection = DBProviderManager<DBProductProvider>.Provider.GetAllProductsDisplayedOnHomePage(showHidden, languageId);
var products = DBMapping(dbCollection);
return products;
}
----> 3.
public abstract DBProductCollection GetAllProductsDisplayedOnHomePage(bool showHidden,
int languageId);这三段程序是用VS转定义跟踪到的,到最后一段程序后,就没下文了,不明白怎么不见读取数据就能取到数据了???GetAllProductsDisplayedOnHomePage();--->2.GetAllProductsDisplayedOnHomePage();
...Provider.GetAllProductsDisplayedOnHomePage(showHidden, languageId);---->3.GetAllProductsDisplayedOnHomePage(bool showHidden,int languageId);
.....3.最后一段抽象方法就这样结束了,根本就没见我们平时连接数据一样读取数据嘛???
if (products.Count > 0)
{
dlCatalog.DataSource = products;
dlCatalog.DataBind();
}
----->2.
public static ProductCollection GetAllProductsDisplayedOnHomePage()
{
var dbCollection = DBProviderManager<DBProductProvider>.Provider.GetAllProductsDisplayedOnHomePage(showHidden, languageId);
var products = DBMapping(dbCollection);
return products;
}
----> 3.
public abstract DBProductCollection GetAllProductsDisplayedOnHomePage(bool showHidden,
int languageId);这三段程序是用VS转定义跟踪到的,到最后一段程序后,就没下文了,不明白怎么不见读取数据就能取到数据了???GetAllProductsDisplayedOnHomePage();--->2.GetAllProductsDisplayedOnHomePage();
...Provider.GetAllProductsDisplayedOnHomePage(showHidden, languageId);---->3.GetAllProductsDisplayedOnHomePage(bool showHidden,int languageId);
.....3.最后一段抽象方法就这样结束了,根本就没见我们平时连接数据一样读取数据嘛???
奥妙就在这句,它把访问数据库的代码进行了封装。封装到了GetAllProductsDisplayedOnHomePage()函数中,你顺着这个线索一定可以找到访问数据库的代码。
//给你个参考:类 Square 必须提供 Area 的实现,因为它派生自 ShapesClass
//所以你的项目中肯定有一个派生类来实现获取数据的方法,设置断点,F11一步步走你就知道了
abstract class ShapesClass
{
abstract public int Area();
}
class Square : ShapesClass
{
int x, y;
// Not providing an Area method results
// in a compile-time error.
public override int Area()
{
return x * y;
}
}
//所以你的项目中肯定有一个派生类来实现获取数据的方法,设置断点,F11一步步走你就知道了
abstract class ShapesClass
{
abstract public int Area();
}
class Square : ShapesClass
{
int x, y;
// Not providing an Area method results
// in a compile-time error.
public override int Area()
{
return x * y;
}
}