簡體   English   中英

如何在C#中的內聯SQL語句的插入語句之后返回新創建的ID?

[英]How do I return the newly created ID after an insert statement from an inline SQL statement in C#?

[HttpPost]
public void InsertOrUpdateDirector(Director director)
{
    int idReturned = 0;

    string query = null;
    myConnection.Open();
    if (director.Operation == 'I')
    {
      query = "INSERT...";
    }
    else if (director.Operation == 'U')
    {
      query = "UPDATE ...";
    }
    var cmd = new SqlCommand(query, myConnection);
    cmd.ExecuteNonQuery();
    myConnection.Close();

    idReturned = "???";

    return idReturned;
}

我只是想在插入語句之后返回新創建的ID。 我該怎么做呢?

插入后,將其添加到查詢SELECT SCOPE_IDENTITY() 並打電話

idReturned = cmd.ExecuteScalar();

而不是cmd.ExecuteNonQuery()

然后檢查idReturned是否為null,cmd.ExecuteScalar()將為您的更新查詢返回null,主鍵應該是Director對象的參與者,因此您可以執行以下操作:

if(idReturned == null){
    return director.DirectorId //just guessing at name of id property here for example sake
}else{
    return idReturned;
}

您應該已經將主鍵傳遞給InsertOrUpdateDirector來編寫更新查詢。

 Try this code,I hope this will work
myConnection.Open();
    if (director.Operation == 'I')
        {
          query = "INSERT...";
    string query1="select  createdId  from table";

        }
    var cmd = new SqlCommand(query, myConnection);
    Sqlcommand cmd1=new SqlCommand(query1,myConnection);
        cmd.ExecuteNonQuery();
    int CreatedId=cmd1.ExecuteScalar();
    return  CreatedId;
        myConnection.Close();
     myConnection.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM