繁体   English   中英

从数据库检索数据-如何?

[英]Retrieve data from database - how?

在数据库表中,我有两列: pagenamepageinfo 我希望在传递pagename时检索数据。 我使用了今天从Stackoverflow获得的代码,但是代码中的某些问题引发了错误:

System.Data.dll中发生类型'System.InvalidOperationException'的异常,但未在用户代码中处理。其他信息:在不存在数据的情况下,尝试读取无效。)

这是代码:

public string GetPageInfo(string filenames)
{
    SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=.;Integrated Security=True");

    con.Open();

    SqlCommand command = new SqlCommand("Select pageinfo from T_Pages where pagename=@filenames", con);

    command.Parameters.AddWithValue("@filenames", filenames);

    // int result = command.ExecuteNonQuery();
    using (SqlDataReader reader = command.ExecuteReader())
    {
        return reader["pageinfo"].ToString(); ;
    }

    // return string GetPageInfo;
}

这是因为:

return reader["pageinfo"].ToString();

如果读取器[“pageinfo”]为空,则的ToString()将抛出异常。

替换上面的行:

if(reader["pageinfo"] != null)
{
   return reader["pageinfo"].ToString();
}
else
{
   return "";
}

或使用空条件运算符

return reader["pageinfo"]?.ToString();

编辑

您还需要在返回之前添加Read()

reader.Read();
return reader["pageinfo"]?.ToString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM