我有一张桌子
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 :(得分: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”,这是为了允许我指定不区分大小写。
希望这有帮助