2013-07-11 2 views
-2

단추가 있습니다 ADD CV입니다. 사용자가 웹 사이트에 로그온 할 때 테이블 "cv" {id_member, id_cv}을 확인하면 테이블에 id_member이 이미있는 경우 ADD CV 단추가 비활성화됩니다. 그렇지 않으면 사용자가이를 클릭 할 수 있습니다.개체 목록을 개체와 비교하십시오.

DB (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; 
    } 

    ... 

내 질문은, 어떻게 데이터베이스에 로그인 한 사용자의 이력서의 실존을 확인할 수 있습니까?

+0

변수 이름을 지정해야합니다. 이전에 코드를 본 적이없는 사람을 대표하는 'c'또는 'r'은 무엇입니까? – DGibbs

+0

귀하의 질문은 무엇입니까? –

+0

짧은 변수 이름 – user2509738

답변

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; 
+0

xx 많이 작동합니다;) –

+0

아무쪼록. – manji

1

당신은 당신이 노출했다고 가정 CV의 목록에서 후보 ID의 존재를 확인하기 위해 LINQ Any을 사용할 수 있습니다 cv 클래스의 비공개 ID 멤버 (확실하지는 않은 경우) :

bool showAddCvBtn = c.Any(id => id.id_member == r.Id_candidat); 
관련 문제