2014-01-17 3 views
0

SQL 서버 데이터베이스의 일부 데이터를 업데이트 한 다음 해당 데이터를 목록 상자에 표시하고 있습니다. 그것은 데이터를 업데이 트하지만 Windows 항목을 다시 시작하지 않으면 중복 항목 (이전 및 새 모두)을 보여줍니다. 누구든지 버튼 클릭 이벤트에서이를 새로 고치는 방법을 알고 있습니까? 새로 고침하지 하지도 않고 당신이 목록 상자를 다시 그려야 할 경우 업데이트 funttions이목록보기 항목 업데이트

private void button2_Click(object sender, EventArgs e) 
{ 
    SqlDataReader dr; 
    try 
    { 
     SqlCommand cmd = new SqlCommand("select prod, eng from comp", cn); 
     cn.Open(); 
     dr = cmd.ExecuteReader(); 

    while (dr.Read()) 
    { 

     listBox1.Items.Add((String)dr["prod"] + "\t\t" + (string)dr["eng"]); 

    } 

    cn.Close(); 
    listBox1.Refresh(); 

} 
+0

당신이 돈 '확실 데이터베이스에 중복 값이 ​​있습니까? –

+0

예 확실합니다 .. 데이터베이스에 중복 값이 ​​없습니다 – user3201916

답변

0

를 작업이 시도 :

listBox1.Invalidate(); 

이 컨트롤을 다시 그릴 것입니다.

시도 :

listBox1.Items.Clear(); 

DB를 읽기 항목을 쓰기 전에 당신은 단지 다음과 같이 목록 상자에 표시 할 새 항목을 원하는 경우, 가 :

private void button2_Click(object sender, EventArgs e) 
{ 
    SqlDataReader dr; 
    try 
    { 
     SqlCommand cmd = new SqlCommand("select prod, eng from comp", cn); 
     cn.Open(); 
     dr = cmd.ExecuteReader(); 

    listBox1.Items.Clear(); 

    while (dr.Read()) 
    { 

     listBox1.Items.Add((String)dr["prod"] + "\t\t" + (string)dr["eng"]); 

    } 

    cn.Close(); 
    listBox1.Invalidate(); 

} 
+0

감사합니다. 작동하지만 복제 된 데이터는 표시되지 않지만 업데이트 된 데이터는 목록 상자에도 나타나지 않습니다. – user3201916

+0

@ user3201916 지금 시도하십시오. 그리고 db에 대한 쿼리가 실제로 어떤 것을 반환하는지 확인하십시오. – nestedloop