2015-09-01 7 views
1

Я пытаюсь проверить, не выбрал ли пользователь (u.userId) в столбце (urid), а затем возвращает true и запускает другую функцию. Если пользователь выбрал данные, они уже существуют, а затем возвращают false. Я получаю это с возвратом void .. что происходит? Я все еще новичок в asp.net, надеясь на помощь. Благодарю.Проверка наличия записи в столбце sql

public string URID { get; set; } 

public void urid_existence(User u) 
{ 
    DBHandler dbh = new DBHandler(); 
    dbh.OpenConnection(); 

    string sql = "select urid from FCS_COUGRP"; 

    if (u.UserID != u.URID) 
    { 
     userH.changeUrserGroup(u); 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+0

1) Состоит ли она? Измените тип возврата на bool. 2) Удалите соединение. 3) Какой смысл иметь команду SQL, которую вы не выполняете? 4) Создайте SqlCommand и выполните запрос. Вы можете делать все в SQL, используя COUNT (*) и WHERE с ExecuteScalar() –

+0

Обратите внимание, что класс 'DBHandler' [кажется подозрительным] (http://stackoverflow.com/questions/9705637/executereader-requires-an-open- и-available-connection-the-connections-curren) для меня, что он делает? Ваш запрос sql также бессмыслен, потому что вы его не используете, и потому, что вы должны использовать 'Where'-предложение для фильтрации в базе данных, т. Е. если вы хотите проверить, существует ли запись с данным идентификатором. –

ответ

1

void означает, что метод не возвращает ничего, но вы хотите вернуть bool. Таким образом, это правильная подпись:

public bool urid_existence(User u) 
{ 
    // ... 
    if (u.UserID != u.URID) 
    { 
     userH.changeUrserGroup(u); 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
Смежные вопросы