2009-10-15 1 views
0

VB.NET newbie 여기에. 를 통해 데이터 세트 협상하는 방법을VB.NET w/ADO 도움말에서 레코드 세트 동작이 필요합니다.

I (이 사이트를 통해) 배운 :

For Each dRow In quanDS.Tables(0).Rows 
    'do something to each row 
Next 

내가 지금 기록의 부분 집합을 통해 루프 이제 데이터 세트에서 반환 알아낼 필요가 - 여기 VB6의 예를 들어 나는 변환해야합니다

strSQL = "select * from tblDQ order by xid, xcode, xDOS" 
rsMaster.Open strSQL, conDB, adOpenDynamic, adLockOptimistic 
rsMaster.MoveFirst 

Do While Not rsMaster.EOF 
    strxID = Trim(rsMaster!xID) 
    strxCode = Trim(rsMaster!xcode) 
    dblQuan = rsMaster!units 
    Do While Trim(rsMaster!xID) = strxID And Trim(rsMaster!xcode) = strxCode 
     rsMaster!unitdif = rsMaster!units - dblQuan 
     rsMaster.Update 
     dblQuan = rsMaster!units 
     rsMaster.MoveNext 
     If rsMaster.EOF Then 
      Exit Do 
     End If 
    Loop 
Loop 

는 어떤 도움을 전혀 이해할 수있을 것이다

을 rsMaster.Close!

답변

1

직접 번역 할 수 있습니다. rs!fieldName 구문은 VB.NET에서 row("fieldName")으로 변환됩니다.

LINQ를 사용하는 것이 더 쉬울 것입니다.

+0

입니다. LINQ를 조사해야 할 수도 있습니다. 번역을 시작하는 VB.NET 레이아웃에 대해 충분히 알지 못한다. 레코드 세트 등을 선언/초기화하는 방법을 모르십시오. –

+0

레코드 세트를 선언하지 마십시오. 이미 DataSet을 얻었고 코드는 행을 반복하는 방법을 알고 있음을 보여줍니다. –

+0

VB.NET에서도 행! 필드 이름이 올바르지 않습니까? 나는 그것이 SQLDataReader를위한 것임을 안다. – MarkJ

1

레코드 세트를 바꾸려면 SQLDataReader로 변환하면됩니다. 기본적으로 구문은

using conn as new sqlconnection({connection string}) 
    using cmd as new sqlcommand("select * from tblDQ order by xid, xcode, xDOS", conn) 
     cmd.connection.open() 
     using reader as SQLDataReader = cmd.ExecuteDataReader() 
      while reader.read 
        do your thing here, referencing reader("field") 
      end while 
     end using 'dispose of the reader 
    end using 'dispose of teh command 
end using 'close and dispose of the connection 
+0

Ack! 거의, 그러나 isnt '독자는 읽기 전용 구조인가? 데이터베이스의 필드를 코드로 업데이트해야합니다. –

+0

죄송합니다. 그것을 놓친 - 충분히주의를 기울이지 않았다. LINQ는 확실히 더 좋을 것입니다. – rjrapson