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

时间:2016-09-03 07:09:58

标签: c# sql-server

在我的数据库表格中,我有两列: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;
}

1 个答案:

答案 0 :(得分:2)

这是因为:

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

如果 reader [“pageinfo”] 为null,则 ToString()将引发异常。

将以上行替换为:

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

或使用Null-conditional Operators

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

修改

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

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