首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySqlDataAdapter UpdateCommand不识别主键

MySqlDataAdapter UpdateCommand不识别主键
EN

Stack Overflow用户
提问于 2016-04-12 01:27:54
回答 1查看 692关注 0票数 0

我使用一个临时表来显示数据视图中的数据。当编辑datagridview中的数据时,我试图更新临时表。这是我正在使用的dataGridView1_RowValidated方法中的代码:

代码语言:javascript
复制
MySqlDataAdapter adapter = new MySqlDataAdapter("select * from     all_plants_temp", con);
                MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);
                adapter.UpdateCommand = builder.GetUpdateCommand();
                adapter.Update(changes);
                ((DataTable)dataGridView1.DataSource).AcceptChanges();

但是,无论何时离开编辑过的行,我都会遇到以下错误:

不支持针对不返回任何键列信息的UpdateCommand生成动态SQL。

根据错误提示(以及我访问的每个网站),我需要在表中包含一个主键。但是,我已经有了一个int自动递增主键。这是我用来创建临时表的代码,以及原始非临时表的相关代码。

代码语言:javascript
复制
ALTER TABLE all_plants ADD COLUMN plantID INT PRIMARY KEY AUTO_INCREMENT;
CREATE TEMPORARY TABLE all_plants_temp SELECT * FROM all_plants;

有人能告诉我代码中的错误吗?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 02:01:20

如前所述,我相信您的临时表没有主键。尝试使用此查询。它将使用Primary Key创建临时表。用你想要的改变YourPk

代码语言:javascript
复制
CREATE TEMPORARY TABLE all_plants_temp
(YourPk int(10) NOT NULL, PRIMARY KEY (YourPk)) SELECT * from all_plants;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36562077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档