2012-01-22 36 views
0

取單個列值我有一個表如何從數據表

Login(id(int),EmailId(varchar(35),connType(varchar)) 

其中conntype具有像POP3或IMAP值。考慮一個用戶登錄。我想獲取登錄用戶的connType價值做這樣

if(conntypeValue == imap) 
{ 
//code for imap connection 
}else 
{ 
//code for pop3 connection 
} 

我怎麼能做到這一點

回答

0

正如在評論中提到上面有大量的文檔資料涵蓋這一點。有很多方法可以連接到數據庫並檢索Linq2Sql和NHibernate等信息。我已經完成了基本的SqlConnection類。就我個人而言,首先理解這些概念非常重要。

public SqlConnectionExample() 
    { 
     // the connection string to the database - this should ALWAYS be configurable 
     string connectionString = "server=localhost;initial catalog=mydatabase; user=mysqluser;pass=mysqlpassword"; 
     int userID = 1; // the ID of the logged in user 

     // create a connection to the database 
     using (SqlConnection conn = new SqlConnection(connectionString)) 
     { 
      conn.Open(); 
      // create a command to pass over the connection 
      using (SqlCommand cmd = new SqlCommand("select connType from login where ID = @id", conn)) 
      { 
       // create a SQL parameter to add them to the command - this will limit the results to the single user 
       SqlParameter p = new SqlParameter("id", System.Data.SqlDbType.Int); 
       p.Value = userID; 

       cmd.Parameters.Add(p); 

       // as we are only selecting one column and one row we can use ExecuteScalar 
       string connType = cmd.ExecuteScalar().ToString(); 

       if (connType.Equals("imap", StringComparison.CurrentCultureIgnoreCase)) 
       { 
        // imap 
       } 
       else 
       { 
        // pop3 
       } 
      } 
     } 
    } 

您將需要自己確定正確的ConnectionString(嘗試www.connectionstrings.com)和UserID。請注意,如果您希望返回多於一行(我在此假設ID是主鍵),則需要使用具有cmd.ExecuteReader函數的SqlDataReader。

另請注意,我使用string.Equals()而不是connType ==「Imap」,這是爲了讓我指定大小寫不敏感。

希望這會有所幫助