【问题标题】:if Query doesnt not return any data [closed]如果查询不返回任何数据[关闭]
【发布时间】:2015-02-23 04:33:35
【问题描述】:

您好,我正在使用下面的代码来显示按钮。

如果查询结果为“0”可见性为真 WORKING

如果查询在数据库中没有发现数据可见性为假。不工作

  string insertSql = "SELECT Status from User_friend WHERE (ProfileId1 =
               @FriendProfileId) AND (ProfileId = (SELECT ProfileId FROM User_Profile
                 WHERE UserId = @UserId))";

        using (SqlConnection myConnection = new SqlConnection(connectionString))
        {


            myConnection.Open();
            SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
            myCommand.Parameters.AddWithValue("@FriendProfileId", 
                           Request.QueryString["ProfileId"]);
            myCommand.Parameters.AddWithValue("@UserId", currentUserId);
            if (myCommand.ExecuteScalar().ToString() == null)
            {
                friendRequestSent.Visible = false;
                addFriend.Visible = true;

            }
             else if (myCommand.ExecuteScalar().ToString() == "0")
            {
                friendRequestSent.Visible = true;
                addFriend.Visible = false;

            }
        }

【问题讨论】:

  • 你得到NullReferenceException,对吧?
  • 你给ExecuteScalar打了两次电话。将值存储一次,然后针对该值运行您的逻辑。
  • 嗨,马修,谢谢。我是 ASP.NET 新手,不太了解如何存储值

标签: c# mysql sql asp.net visual-studio-2010


【解决方案1】:

ExecuteScalar 将具有值DBNull.Value 的NULL 值。您还应该考虑执行查询一次,将结果保存在对象变量中,然后使用两次。

object result = myCommand.ExecuteScalar();
if (result == DBNull.Value)
{
    friendRequestSent.Visible = false;
    addFriend.Visible = true;
}
else if (Convert.ToString(result) == "0")
{
    friendRequestSent.Visible = true;
    addFriend.Visible = false;
}

【讨论】:

  • 谢谢,现在我收到 else if (myCommand.ExecuteScalar().ToString() == "0") {friendRequestSent.Visible = true; addFriend.Visible = false; }
  • 我编辑了我的回复以包含执行一次查询的建议。
【解决方案2】:

拳头我想知道null 的意思。不应该是Null吗?

 if (myCommand.ExecuteScalar().ToString() == "Null")

或者,如果它不存在,您可以将其留空:

 if (myCommand.ExecuteScalar().ToString() == "")

【讨论】:

  • null 表示该行在数据库中不存在
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多