将对象列表与对象进行比较
本文关键字:对象 比较 列表 | 更新日期: 2023-09-27 18:22:03
我有一个按钮添加CV。当用户登录网站时,我检查一个表"cv" {id_member, id_cv}
,如果id_member
已经存在于表中,则禁用ADD CV按钮,否则用户可以单击它。
我在类(cv { int Id_candidat}
)的列表(c
)中从DB检索所有id_members
。我需要检查此列表中是否存在已登录用户的id(从Session
变量中提取)。
我是这样做的,但它不起作用:
protected void Page_Load(object sender, EventArgs e)
{
List<cv> c = new List<cv>();
SqlConnection con = new SqlConnection(@"Data Source=p5-pc'sqlexpress;" +
"Initial Catalog=recrutement_online_3;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = "select id_candidat from cv";
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
cv p3 = new cv();
p3.Id_candidat = int.Parse(dr[0].ToString());
c.Add(p3);
}
dr.Close();
con.Close();
cv r = new cv();
r.Id_candidat = int.Parse(Session["Id_candidat"].ToString());
if (c.Contains(r))
{
Button1.Enabled = false;
}
...
我的问题是,我如何检查数据库中是否存在登录用户的简历?
您可以在填写可用cvs列表时检查候选是否存在:
...
bool candidatExists = false;
int idCandidat = int.Parse(Session["Id_candidat"].ToString());
while (dr.Read())
{
cv p3 = new cv();
p3.Id_candidat = int.Parse(dr[0].ToString());
c.Add(p3);
if(p3.Id_candidat == idCandidat)
{
candidatExists = true;
}
}
dr.Close();
con.Close();
Button1.Enabled = !candidatExists;
您可以使用linq-Any来检查简历列表中是否存在候选人ID,假设您已经公开了cv
类的非私人ID成员(您尚未明确):
bool showAddCvBtn = c.Any(id => id.id_member == r.Id_candidat);