나는 내 눈에서 꽤 똑바로 보이는 것 위에 내 머리카락을 잡아 당기는 것 같습니다. 데이터 집합을 변경 한 후 datagridview 컨트롤을 올바르게 업데이트 할 수 없습니다.Datagridview를 데이터 세트에서 새로 고침
데이터 세트에서 처음으로 datagridview를 채우고 열을 자동으로 생성합니다. 그러나 새 데이터로 데이터 집합을 다시 생성하면 datagridview는 새 데이터를 올바르게 표시하지만 이전 열 머리글은 제거하지 않습니다.
예를 들어 Store Name과 Manager를 제공하고 자동으로 DataGridview를 채우는 쿼리가 있습니다. 그런 다음 저장소 이름과 관리자에게 내 쿼리 만 변경하면 저장소 이름, 관리자 (빈 열 포함) 및 관리자가 표시됩니다.
나는 datagridview.refresh() 및 datagridview.update()를 시도했지만 아무것도 작동하지 않는 것 같습니다. 내가있는 DataGridView를 업데이트 할 때
MySQLConn.Open()
Dim ExQry As New MySqlCommand(QryStr, MySQLConn)
ExQry.CommandType = CommandType.Text
Dim da As New MySqlDataAdapter(ExQry)
dasCustomQryData.Clear() 'my dataset is called dasCustomQryData
da.Fill(dasCustomQryData, "QryData")
da.Update(dasCustomQryData, "QryData")
With dgvCustomQuery
.DataSource = Nothing
.Dock = DockStyle.Fill
.AutoGenerateColumns = True
.DataSource = dasCustomQryData
.DataMember = "QryData"
.Refresh()
.Visible = True
End With
MySQLConn.Close()
da.Dispose()
dasCustomQryData.Dispose()
그래서, 나는 위의 코드에 새로운 QryStr 플러그인과 내 데이터 집합을 재 구축 : 다음은 내 코드입니다. datagridview에 올바른 데이터가 포함되어 있기 때문에 데이터 세트가 업데이트되고 있지만 내 문제는 datagridview가 더 이상 채워지지 않은 이전 열을 지우지 않는다는 것입니다.
모두에게 감사드립니다. 감사합니다
그냥 열의 데이터는이 데이터 테이블에 존재하는 컬럼을 게재가 중단됩니다 의미하지 않습니다이 발생할 :
다음 명령
내 문제를 해결했다. – OneFineDay그럼 내 데이터 집합에 어떤 데이터가 있는지 확인하려면 어떻게해야합니까? 내 쿼리는 관리자 필드에 대한 참조를 만들지 않으며 새 쿼리로 다시 채우는 동안 데이터 세트를 지우므로 필드가 내 데이터 세트에 여전히 존재하는지 어떻게 확인할 수 있습니까? – Riples
반환 된 모든 레코드를 반복 할 수 있으며 빈 필드 수가'rows.Count'와 일치하면 해당 열을 보이지 않게 할 수 있습니다. – OneFineDay