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