当前位置:编程学习 > C#/ASP.NET >>

Dynamic SQL generation for the DeleteCommand is not supporte

protected void Sync_Table_Different(string TableName, string KeyName)
    {
        DataTable SourceDT = new DataTable();
        DataTable TargetDT = new DataTable();
        SourceDT = GRS.LoadData_SQL(ViewState["CNStr_C"].ToString(), "select * from " + TableName);
        SqlDataAdapter da = new SqlDataAdapter("select * from " + TableName, ViewState["CNStr_A"].ToString());
        SqlCommandBuilder cb = new SqlCommandBuilder(da);
        da.InsertCommand = cb.GetInsertCommand();
        da.DeleteCommand = cb.GetDeleteCommand();

----系统运行到这里提示“Dynamic SQL generation for the DeleteCommand is not supported against a SelectCommand that does not return any key column information.”,请问是不是因为有数据重复了导致它读不到数? --------------------编程问答-------------------- 楼主,那英文不是告诉你原因了吗?

“Dynamic SQL generation for the DeleteCommand is not supported against a SelectCommand that does not return any key column information.”,

// Dynamic SQL generation 大概的意思是动态的SQL代码

// for the DeleteCommand  服务于DeleteCommand 指令 (也就是你代码里的da.DeleteCommand = cb.GetDeleteCommand();这个指令是删除用的)

// is not supported against a SelectCommand that does not return any key column information 不支持 对于 SelectCommand (查询命令) 不返回任何 键 列 的信息


// 大概的意思呢,就是你现在传给SQL命令对象的SQL语句写错了

da.InsertCommand = cb.GetInsertCommand(); // 这个是配置插入语句
da.DeleteCommand = cb.GetDeleteCommand(); // 这个是配置删除语句

你现在是要做查询,那么,请使用da.SelectCommand

--------------------编程问答-------------------- 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(主键)   约束   
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,