如果Query没有返回任何数据

时间:2014-12-25 12:55:40

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

您好我正在使用以下代码显示按钮。

如果查询结果为" 0"可见性真实工作

如果查询发现数据库中的数据可见性为false。不工作

  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;

            }
        }

2 个答案:

答案 0 :(得分:1)

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

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;
}

答案 1 :(得分:0)

拳头我想知道null在那里意味着什么。不应该是Null吗?

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

或者,如果它意味着它不存在,你可以把它留空:

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