How to get the primary key of the last row inserted into the table

混江龙づ霸主 提交于 2019-11-27 08:28:41

问题


I am using multiview index to insert the news details. In the first view the user can enter details of news which is then inserted into db on clicking the next button the second view gives a user to add images of that news (only 3 images allowed) ,

what I am having problem is that the first view inserts data into the table dbo.newsdetail with a primary key newsID , while the second view should add the respected images using that newsId of the news just added into newsimages table. I just dont know how to get the newsID of the details which is added in the first view as news Id is working as a foreign key for the both the table. Any help or suggestions will be highly appreciated .

 static public void insertNews(string newsDescription, string newsImage, string newsTitle)
{
    SqlConnection conn = new SqlConnection(ConnectionString);
    conn.Open();
    SqlCommand insertNews = new SqlCommand("Insert INTO caravanNews(newsDescription, newsImage, newsTitle) VALUES ('" + newsDescription + "', '" + newsImage + "' , '" + newsTitle + "')",conn);
    insertNews.ExecuteNonQuery();
    conn.Close();

}

回答1:


A separate SQL statement

SELECT SCOPE_IDENTITY()

Or the OUTPUT clause

INSERT MyTable (...=
OUTPUT INSERTED.KeyCol
VALUES (...) --Or SELECT ... FROM Another table)

Edit:

  • change your insert statement to match mine
  • change .ExecuteNonQuery() to blah = xxx.ExecuteScalar()



回答2:


As part of your INSERT statement (into the first News table), after it runs, execute

SELECT SCOPE_IDENTITY()

and return NewsId value to caller.

Ref.



来源:https://stackoverflow.com/questions/5962322/how-to-get-the-primary-key-of-the-last-row-inserted-into-the-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!