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