2014-08-27 3 views
1

현재 엑셀 시트를 DataGridView로 가져올 수 있습니다. 그러나 행의 각 열에 대해 서로 다른 변수를 기반으로 완전히 새로운 행을 추가하려고하면 해당 행이 마음에 들지 않습니다. 내가 을 말하는 오류를 받고 있어요 그러나 나는각 셀에 설정된 변수로 datagridview 행 채우기

DataGridView1.Rows.Add(New String() {txt_id.Text, txt_name.Text, txt_modelnumber}) 

를 사용하는 기대했다

은 "추가 정보 : 컨트롤이 데이터 바인딩 된 경우 행은 프로그래밍 된 DataGridView의 행 컬렉션에 추가 할 수 없습니다."

어떻게 데이터 바인딩하지 않습니까? 아니면 세포를 채우는 다른 방법이 있습니까?

내 수입 코드 : 당신이 DataGridView에에 데이터 소스를 지정하면

Dim MyConnection As System.Data.OleDb.OleDbConnection 
    Dim DtSet As System.Data.DataSet 
    Dim MyCommand As System.Data.OleDb.OleDbDataAdapter 
    MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Lenovo\Downloads\Test\exported.xls';Extended Properties=Excel 8.0;") 
    MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Products$]", MyConnection) 
    MyCommand.TableMappings.Add("Table", "Net-informations.com") 
    DtSet = New System.Data.DataSet 
    MyCommand.Fill(DtSet) 
    DataGridView1.DataSource = DtSet.Tables(0) 
    MyConnection.Close() 
+0

Dim table As DataTable = DtSet.Tables(0) Dim newRow As DataRow = table.NewRow() newRow("Product ID") = lastproductid + 1 newRow("Name") = txt_name.Text table.Rows.Add(newRow) 

는 DataGridView에의 데이터 소스하지 난하지만 난 datasourcesand 추가 행을 읽을 수 있다면 내가 볼거야 DataGridView에 자체 –

+0

잠시 혼란스러워. 내 데이터 소스를 xlsx 파일에서 가져온 것입니다. "DataGridView1.Rows.Add"방법을 수행 할 수 있습니까? 아니면 다른 방법으로 명시 적으로해야합니까? 또한 어떤 경우에 "DataGridView1.Rows.Add"가 사용되지 않을까요? – Crystalwolf

+0

어딘가에'datagridview1.datasource = ????? '를 지정해야합니다. 뭐라 구요? 엑셀 시트를 그리드로 가져 오기 위해 사용중인 코드를 표시하십시오. 'DataGridView1.Rows.Add'는 그리드가 데이터 소스에 바인드되지 않았을 때 사용됩니다. –

답변

0

, 당신은 당신이 데이터 소스에 추가해야합니다, 직접 DataGridView에 행을 추가 할 수 없습니다. how to add new rows into a datatable vb.net

귀하의 유일한 옵션은 다음과 같이 수동으로 그리드에 DataTable의 모든 행을 추가하는 것입니다 :

귀하의 경우에는

당신은 DataTable을 dtSet.Tables(0)

참조 행을 추가 할 필요가

For each dr As DataRow In dtSet.Tables(0).Rows 
    DataGridView1.Rows.Add(New String() {dr.Item(0).ToString, etc}) 
Loop 
+0

첫 번째 옵션을 시도했지만 그 결과는 가져온 DataGridview를 완전히 비우고 설정 한 행으로 대체하는 것입니다. 나는 두 번째 방법을 지금 시도 할 것이다. – Crystalwolf

0

매트 윌코 (Matt Wilko)가 게시 한 다른 방법을 시도했지만 사용 방법을 파악할 수 없었습니다. 그래서 나는 마이크로 소프트 라이브러리에서 그것을 찾아 완벽하게 작동하는 것을 발견했습니다. 당신은 지정된 개체에 행을 추가 할 필요가 http://msdn.microsoft.com/en-us/library/system.data.datatable.rows(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

+0

내 대답에 내가 링크 된 방법을 사용합니다. –

관련 문제