从插入/更新查询中获取上次插入的ID返回值

本文关键字:插入 返回值 ID 更新 查询 获取 | 更新日期: 2023-09-27 18:29:00

我想在可视化C#程序中插入时返回最后一个插入的id。

// Insert to database
try
{
    int result = int.Parse(tblClipManagerTableAdapter.InsertQuery(textBox2.Text, textBox1.Text).ToString());
    MessageBox.Show(result.ToString());
}
catch (Exception ex) {
    MessageBox.Show("Fejl: " + ex.Message.ToString());
}

错误是:"对象引用未设置为对象的实例。"

我已经将tblClipManagerTableAdapter.InsertQuery执行模式设置为标量。

关于如何用我当前的代码和设置返回最后插入的ID,有什么帮助吗?

使用本地SQL数据库(dbClipManager.sdf).

向致以最良好的问候


编辑

我想我找到了可以用的东西。

但我对这件事很陌生。不知道如何完成代码的编写?我习惯于只使用数据集,而不是打开连接,执行SQL cmds。:o/

http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/1d1d3267-dc29-470b-bb20-00487a39bc87/

向致以最良好的问候

从插入/更新查询中获取上次插入的ID返回值

您的方法有几个问题,所以我建议您快速阅读表适配器,并确保您已经掌握了基本知识。

  1. 如果要添加新记录,则应调用TableAdapter.Insert,而不是TableAdapter.Update
  2. 您不能为数据库创建第二个命令并使用@@IDENTITY来获取以前生成的ID。。。这必须在同一会话中返回,否则SQL将不知道您希望接收哪个ID
  3. 如果将表适配器的执行模式设置为标量,那么ID将是方法调用的返回值。请参阅与您遇到的问题相同的问答

编辑:请看下面的演练,了解你正在努力实现的目标。