我使用一个临时表来显示数据视图中的数据。当编辑datagridview中的数据时,我试图更新临时表。这是我正在使用的dataGridView1_RowValidated方法中的代码:
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自动递增主键。这是我用来创建临时表的代码,以及原始非临时表的相关代码。
ALTER TABLE all_plants ADD COLUMN plantID INT PRIMARY KEY AUTO_INCREMENT;
CREATE TEMPORARY TABLE all_plants_temp SELECT * FROM all_plants;有人能告诉我代码中的错误吗?任何帮助都是非常感谢的。
发布于 2016-04-12 02:01:20
如前所述,我相信您的临时表没有主键。尝试使用此查询。它将使用Primary Key创建临时表。用你想要的改变YourPk。
CREATE TEMPORARY TABLE all_plants_temp
(YourPk int(10) NOT NULL, PRIMARY KEY (YourPk)) SELECT * from all_plants;https://stackoverflow.com/questions/36562077
复制相似问题