2014-01-08 4 views
0

같은 일이 vb.net 응용 프로그램에서 여러 번 저장지고있는 gridview 데이터로 저장하는 동안 : 난로드 이벤트에 vb.net 윈도우 응용 프로그램 enter image description here나는이 같은 그리드보기를

일하고 난 같은 코드를 부여 저장 버튼 내가 다음과 같은 코드를 부여

Dim cd As SqlCommandBuilder = New SqlCommandBuilder(adapter) 
     adapter = New SqlDataAdapter("select c.cid,c.CompanyName as Company,d.dtId,d.dtName as Department,d.dtPhone as D.phone,d.dtEmail as D.mail from CompanyMaster_tbl c join DepartmentMaster_tbl d on c.Cid=d.cId", con.connect) 
     dt1 = New DataTable 
     bSource = New BindingSource 
     adapter.Fill(dt1) 'Filling dt with the information from the DB 
     bSource.DataSource = dt1 
     gv.DataSource = bSource 
     gv.Columns("cid").Visible = False 
     gv.Columns("dtId").Visible = False 

에서 :이이 경우 전나무에

Dim sqlInsertT1 As String = "" 
     Dim sqlInsertT2 As String = "" 
     For i As Integer = 0 To gv.RowCount - 2 
      If gv.Rows(i).Cells(1).Value IsNot System.DBNull.Value Then 

       sqlInsertT1 = "Insert Into CompanyMaster_tbl(CompanyName) Values ('" + gv.Rows(i).Cells(1).Value + "')" 
       Exetransaction(sqlInsertT1) 
       Ccid = RecordID("Cid", "CompanyMaster_tbl", "CompanyName", gv.Rows(i).Cells(1).Value) 
      End If 

      sqlInsertT2 = "Insert Into DepartmentMaster_tbl(dtname,dtphone,dtEmail,Cid) Values ('" + gv.Rows(i).Cells(3).Value + "','" + gv.Rows(i).Cells(4).Value + "','" + gv.Rows(i).Cells(5).Value + "'," & Ccid & ");" 
      Exetransaction(sqlInsertT2) 
     Next 

나는 회사의 아래에 세 개의 부서를 추가 Y IBS, 그럼 나는 처음으로 모든 것이 올바르게 저장되었습니다. 다시 나는 응용 프로그램을 실행하고 comapny IBS 아래에 하나 이상의 부서, 전화, 메일을 추가했습니다. 그때 나는 save button .. but를 다시 클릭했다. 같은 부서가 저장되고있다. (나는 모든 부서를 다시 저장하고 싶지 않다. 단지 마지막으로 추가 된 부서, 전화, 이메일을 저장하고 싶지 않다.) .. 그래서 나는 내 코드에서 바꿔야 만한다.

+0

SQL 쿼리를 위해 concatonate하지 마십시오. 매개 변수 (예 : SqlParameters)를 사용하십시오. 당신은 ' –

답변

0

주어진 코드에서 dt1에 바인딩 했으므로 dt1.GetChanges()을 보면 이것이 무엇인지 알 수 있습니다.

또는 DataGrid를 읽기 전용으로 설정 한 다음 부서 또는 회사를 편집하거나 추가 할 수있는 새로운 양식을 제안하십시오. 이것은 훨씬 더 큰 컨트롤을 제공하지만 DataGrid를 읽기 전용으로 만들 수있는 위치에있는 경우에만 옵션입니다.

+0

선생님과 함께 문자열이 있다면 주입 된 SQL을 얻을 수있는 DataGrid의 readonly, 내가 편집, 추가 및 삭제해야 할 DataGrid를 확인하십시오 – user3106114