簡體   English   中英

如何使用ExecuteScalar函數和SCOPE_IDENTITY()函數檢索插入的行的ID

[英]How can I retrieve the ID of the inserted row using ExecuteScalar function and the SCOPE_IDENTITY() function

我需要能夠得到的ID(這樣我就可以再傳給它通過添加新聞查詢)為我的圖片上傳表中插入行,這樣我就可以INNER JOIN新聞條目它。

根據我的研究,我需要使用ExecuteScalar函數和SCOPE_IDENTITY()函數。

我將如何實現這一目標的任何建議將不勝感激。

 protected void btnUpload_Click(object sender, EventArgs e)
 {
     if (FileUpload1.PostedFile != null)
     {
         SqlConnection con = new SqlConnection(strConnString);

         string strQuery = "insert into tblFiles (FileName, FilePath) 
             values(@FileName, @FilePath)"

         SqlCommand cmd = new SqlCommand(strQuery);
         cmd.Parameters.AddWithValue("@FileName", FileName);
         cmd.Parameters.AddWithValue("@FilePath", "/images/admin/news/" + FileName);  
         cmd.CommandType = CommandType.Text;
         cmd.Connection = con;

         try {
             con.Open();
             cmd.ExecuteNonQuery();
         }
         finally {
             con.Close();
             con.Dispose();
         }
     }
 }

擁有ID后,我可以執行另一個SQL查詢以使用正確的圖片ID插入新聞項。

首先,您需要使用存儲過程,而不僅僅是在應用程序中編寫SQL語句。

其次,您要在插入語句中運行SCOPE_IDENTITY ,例如

  INSERT INTO tblFiles (FileName, FilePath) 
         VALUE(@FileName, @FilePath);

  SELECT  SCOPE_IDENTITY() 

然后將.NET中的執行語句更改為ExecuteScalar

var result = cmd.ExecuteScalar();

暫無
暫無

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

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