这是我在这里的第一个问题,请原谅我这种呈现方式。
我有一个MySQL表categories
,其中包含以下列:
这是我想要做的事情;
categories
mysqldataadaptor
的{{1}}方法问题是我插入新行后,我的数据集的相关行没有显示最后插入的主键(自动生成的主键)。但它显示了价值观。
这是我添加新行的代码
update()
这是我更新数据库的代码
var dr = ds.Tables["categories"].NewRow();
dr["c_code"] = "tst123";
dr["c_name"] = "123tdt";
ds.Tables["categories"].Rows.Add(dr);
最后这就是我在行上方查看 SOON AFTER 的数据集
adp.Update(ds.Tables[tempTableName]);
问题:
在网格视图中,只有dataGridView1.DataSource = ds.Tables["categories"];
和c_code
出现在那里。
如何将最后插入的c_name
插入数据集?
答案 0 :(得分:0)
我猜你必须做一个新的adp.Fill(ds)来获取ID。您只提供c_code和c_name。因此,c_code和c_name是网格中填充的唯一列。 adp.Update更新您的数据库,由于显而易见的原因,它不会在更新后重新加载整个数据集。
答案 1 :(得分:0)
这对我有用: 它在VB中,但你可以看到发生了什么。
mySQLdataAdapter.Update(myDataSet, table)
mySQLcommand.CommandText = "Select Last_Insert_ID();"
lastInsertID = dc.ExecuteScalar()
在mysql适配器更新后立即运行此代码,即使我正在使用数据集,也会提供最后插入的ID。