[英]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.