Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从插入/更新查询获取上次插入的ID返回_C#_Sql_Visual Studio 2010_Sql Server Ce - Fatal编程技术网

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

C# 从插入/更新查询获取上次插入的ID返回,c#,sql,visual-studio-2010,sql-server-ce,C#,Sql,Visual Studio 2010,Sql Server Ce,我希望在插入visual C#程序时返回最后一个插入的id 错误是:“对象引用未设置为对象的实例。” 我已将tblClipManagerTableAdapter.InsertQuery执行模式设置为scalar 关于如何使用当前代码和设置返回上次插入的ID,是否有任何帮助 使用本地SQL数据库(dbClipManager.sdf) 致意 编辑 我想我找到了我可以用的东西 但我对这个很陌生。不知道如何完整地编写代码? 我习惯于只使用数据集,而不打开连接,执行SQL cmds:o/ 致以最诚挚的

我希望在插入visual C#程序时返回最后一个插入的id

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

我已将tblClipManagerTableAdapter.InsertQuery执行模式设置为scalar

关于如何使用当前代码和设置返回上次插入的ID,是否有任何帮助

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

致意


编辑

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

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


致以最诚挚的问候

您的方法存在一些问题,因此我建议您快速通读一下

  • 如果试图添加新记录,则应调用
    TableAdapter.Insert
    ,而不是
    TableAdapter.Update
  • 您不能为数据库创建第二个命令并使用
    @@IDENTITY
    获取以前生成的
    ID
    。。。这必须在同一个会话中返回,否则SQL将不知道您希望接收哪个ID
  • 如果将表适配器的执行模式设置为scalar,则ID将是方法调用的返回值
    编辑:

    即使在SQL Server 2000中,也不应该使用@identity。@HLGEM你说得对。。。谢谢出于某种原因,我认为
    SCOPE\u IDENITY()
    是在2005年添加的,但它是在2000年添加的。我想我花在7.0上的时间比我想记住的要多。@MichaelFredrickson非常感谢你的快速回答。很抱歉,更新/插入不匹配。我已经编辑了我的问题。现在,我已经将tableadapter(tblClipManagerTableAdapter.InsertQuery)的执行模式设置为scalar。我的try/catch中仍然出现相同的错误。将SCOPE_IDENTITY()放在何处?@user1281991您可以在insert语句的末尾添加
    选择SCOPE_IDENTITY()
    ,insert语句通常是为您的表适配器自动生成的@MichaelFredrickson抱歉,但它仍然不起作用。Visual Studio不允许我将SELECT SCOPE_IDENTITY()放入insert查询中。似乎SQLCE不支持这一点?
    // 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());
    }