刚开始学习ASP.NET,有一问题请教代码如下:using NorthwindTableAdapters;
Page_Load(object sender, EventArgs e)
{
ProductsTableAdapter productsAdapter = new ProductsTableAdapter();
GridView1.DataSource = productsAdapter.GetProducts();
GridView1.DataBind();
}
} 代码我基本能看懂,唯一不明白的是using NorthwindTableAdapters; 按例程的说法,这是对一个强类型的DataAdapter class 引用,using后才能实例化ProductsAdapter。 可是我按例程的操作时只在DataSet Northwind中定义了ProductsTableAdapter 并没有定义过NorthwindTableAdapters.我怎么知道在这里要输入NorthwindTableAdapters,而不是别的名称呢?GOOGLE过后,在一论坛里发现有人说NorthwindTableAdapters.ProductsTableAdapter 是由系统自动生成的请问,我能在什么地方看到这些由系统生成的名称呢?
Page_Load(object sender, EventArgs e)
{
ProductsTableAdapter productsAdapter = new ProductsTableAdapter();
GridView1.DataSource = productsAdapter.GetProducts();
GridView1.DataBind();
}
} 代码我基本能看懂,唯一不明白的是using NorthwindTableAdapters; 按例程的说法,这是对一个强类型的DataAdapter class 引用,using后才能实例化ProductsAdapter。 可是我按例程的操作时只在DataSet Northwind中定义了ProductsTableAdapter 并没有定义过NorthwindTableAdapters.我怎么知道在这里要输入NorthwindTableAdapters,而不是别的名称呢?GOOGLE过后,在一论坛里发现有人说NorthwindTableAdapters.ProductsTableAdapter 是由系统自动生成的请问,我能在什么地方看到这些由系统生成的名称呢?
它应该在vs生成的一个cs文件中。找到这个类定义在哪个namespace中。using这个namespace即可。
{
//数据绑定
//试试,你就明白了
}
http://msdn.microsoft.com/zh-cn/library/bb384426.aspx
using NorthwindTableAdapters; //自己编写好的数据库适配器的类的命名空间,引入就可以使用其中的类这个我明白了以下引用自MSDN:
表示一个 TableAdapter。生成的 TableAdapterManager 对它所管理的每个 TableAdapter 包含一个属性。例如,生成包含 Customers and Orders 表的数据集时还生成一个 TableAdapterManager,它包含 CustomersTableAdapter 和 OrdersTableAdapter 属性这个也好理解,在生成TableAdapter时,能看到。
我不明白的是,我在名为Northwind的DataSet建了CustomersTableAdapter,OrdersTableAdapter之后
,为什么它们会自动包含中NorthwindTableAdapter中?
不应该是“建议”,应该是“必须”!如果lz你看到的资料就是那么写的,那么除非它是最初级的没有什么功能的东西,否则我建议你扔掉这个资料。其实即使是最初级的东西,如果作者有个好习惯,也应该写上 if(!IsPostback)。如果你随便往页面上拖入一个什么都不干的Button,也就是它的Click事件处理程序是空的,你测试一下。既然它什么都不干而每一次回发都要重新读取数据库并重新绑定控件,你的程序是多么慢、多么浪费服务器资源。而且也会有很多逻辑错误,因为page_load的职责是恢复上一次Render时输出的控件树状态,好让asp.net可以处理客户端提交的修改来触发所有自己及其各个子控件的事件(还有很多代码没有执行),而重新绑定控件的行为只应该发生在page_Load已经执行完之后的某个方法中。