-2

我有一个按钮ADD CV。当用户登录网站时,我检查一个表"cv" {id_member, id_cv},如果表中id_member已经存在,则该ADD CV按钮被禁用,否则用户可以单击它。

id_members从数据库中检索所有c类( )列表( 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;
    }

    ...

我的问题是,如何检查数据库中登录用户的简历是否存在?

4

2 回答 2

1

您可以在填写可用 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;
于 2013-07-11T15:15:35.727 回答
1

您可以使用 linq Any来检查 CV 列表中是否存在候选人 ID,假设您已经公开了cv班级的非私有 id 成员(您还不清楚):

bool showAddCvBtn = c.Any(id => id.id_member == r.Id_candidat);
于 2013-07-11T15:15:42.503 回答