2014-12-25 3 views
-1

Привет, я использую приведенный ниже код для отображения кнопок., если Query не возвращает данные

Если результат запроса является «0» видимостью истинной РАБОТЫ

Если запрос найден нет данных в базе данных видимости ложными. НЕ РАБОТАЕТ

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

Вы получаете 'NullReferenceException', верно? –

+1

Вы дважды вызываете 'ExecuteScalar'. Сохраните значение один раз, затем запустите свою логику. –

+0

Привет, Мэтью, спасибо. Я новичок в ASP.NET и не понимаю, как сохранить значение –

ответ

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

спасибо, теперь я получаю сообщение об ошибке для else if (myCommand.ExecuteScalar(). ToString() == "0") { friendRequestSent.Visible = true; addFriend.Visible = false; } –

+0

Я отредактировал свой ответ, чтобы включить предложение выполнить запрос один раз. –

0

Кулак Я хочу знать, что null означало. Не должно быть Null?

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

Или, если это означает, что она не существует, вы можете оставить это пустым:

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

null означает, что строка не существует в базе данных –

Смежные вопросы