ADO.NET出错原因:
Dynamic SQL generation for the UpdateCommand is not Supported against a SelectCommand that does not return any key column information.
解决方法
A record has been retrieved from a database and an attempt has been made to update the record, however the database table lacks a primary key and therefore there is no way to update the required record.

PRIMARY   KEY   约束  
  表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义   PRIMARY   KEY   约束来创建主键。  
   
  一个表只能有一个   PRIMARY   KEY   约束,而且   PRIMARY   KEY   约束中的列不能接受空值。由于   PRIMARY   KEY   约束确保唯一数据,所以经常用来定义标识列。  
   
  当为表指定   PRIMARY   KEY   约束时,Microsoft®   SQL   Server™   2000   通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。  
   
  如果   PRIMARY   KEY   约束定义在不止一列上,则一列中的值可以重复,但   PRIMARY   KEY   约束定义中的所有列的组合的值必须唯一  
  -----------------------  
  当向表中的现有列添加   PRIMARY   KEY   约束时,Microsoft®   SQL   Server™   2000   检查列中现有的数据以确保现有数据遵从主键的规则:     
  无空值
  无重复值    
  如果   PRIMARY   KEY   约束添加到具有空值或重复值的列上,SQL   Server   不执行该操作并返回错误信息。不能添加违背上述规定的   PRIMARY   KEY   约束。   
  SQL   Server   自动创建唯一的索引来强制   PRIMARY   KEY   约束所要求的唯一性。如果表中不存在聚集索引或未明确指定非聚集索引,则将创建唯一的聚集索引强制   PRIMARY   KEY   约束。  
  -----------------------  
  主键中的一个键值是根据另一个表的主键而来(就是外键)时,则该列的值必须在另一个表的主键值中存在。另外,当要删除另一个表的主键约束时,必须要先删除这个   FOREIGN   KEY   (外键)约束才能进行删除另一个表的PRIMARY   KEY(主键)   约束