我有一个按钮 ADD CV 。当用户登录到网站时,我检查表"cv" {id_member, id_cv}
,如果表中已存在id_member
,则禁用 ADD CV 按钮,否则用户可以点击它。
我从类(id_members
)的列表(c
)中的DB中检索所有cv { int Id_candidat}
。我需要检查此列表中是否存在已记录用户的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;
}
...
我的问题是,如何检查数据库中已记录用户的cv是否存在?
答案 0 :(得分:1)
填写可用简历列表时,您可以检查候选人是否存在:
...
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;
答案 1 :(得分:1)
您可以使用linq Any来检查CV列表中是否存在候选ID,假设您已经公开了cv
类的非私有ID成员(您还没有清除):
bool showAddCvBtn = c.Any(id => id.id_member == r.Id_candidat);