我在我的代码中收到“对象引用未设置为对象的实例”错误。我相信我理解为什么会发生这种情况,但我不知道如何解决它。这是我的代码:
public string GetLastPost(int subCatId)
{
SqlConnection conn = null;
string postDate = null;
try
{
conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "forum_GetLastPostDate";
cmd.Parameters.Add("@SubCategoryId" , subCatId);
postDate = cmd.ExecuteScalar().ToString();
}
这是我的 SQL 查询:
SELECT TOP 1 PostDate
FROM forum_posts
WHERE forum_posts.SubcategoryId = @SubCategoryId
ORDER BY PostId desc
此行引发错误:
postDate = cmd.ExecuteScalar().ToString();
在调试时,我注意到只有当 SQL 查询什么都不返回时才会发生这种情况。此方法多次运行,第一次运行时正确运行,因为它返回一个项目。但是第二次,因为它没有要返回的项目,所以它抛出了我提到的错误。
我怎么解决这个问题?