2015-09-01 92 views
1

我試圖檢查用戶選擇(u.userId)是否不在列中(urid),然後只返回true並運行其他函數。如果用戶選擇的數據已經存在,則返回false。我得到它與回報無效..會發生什麼?我在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-和-connection-the-connections-curren)給我,它有什麼作用?你的sql查詢也是毫無意義的,因爲你不使用它,因爲你應該使用'Where'子句來過濾數據庫中的f.e.如果您想檢查是否存在具有給定ID的記錄。 –

回答

1

void意味着該方法不返回任何東西,但你要返回bool。所以這是正確的簽名:

public bool urid_existence(User u) 
{ 
    // ... 
    if (u.UserID != u.URID) 
    { 
     userH.changeUrserGroup(u); 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
}