我需要能够获取我的图片上传表的插入行的ID(我可以通过添加新闻查询传递它),这样我就可以INNER JOIN
一个新闻项目。< / p>
根据我的研究,我需要使用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后,我可以使用正确的图片ID执行另一个SQL查询来插入新闻项目。
答案 0 :(得分:1)
首先,您需要使用存储过程而不是仅在应用程序中编写SQL语句。
第二个你想要的是{/ 1}}作为插入语句的一部分运行,如
SCOPE_IDENTITY
然后将.NET中的执行语句更改为 INSERT INTO tblFiles (FileName, FilePath)
VALUE(@FileName, @FilePath);
SELECT SCOPE_IDENTITY()
ExecuteScalar