Ciao a tutti, sto realizzando un progetto in Vb.Net.Una anagrafica operatori. Ho usato il databindings sui controlli, un po per velocità, un po per curiosità. Mma devo dire che nn mi sto trovando per nulla bene. In particolare non va il metodo update.
il dataset su cui si appoggiano i controlli viene popolato in questo modo:
dove dbGrid è una tabella con la lista degli utenti. Il dataset viene riempito in modo corretto,codice:Try Dim strCodUt, strSqlL As String strCodUt = dbGridOperatori.Item(dbGridOperatori.CurrentRowIndex, 0) strSqlL = "SELECT * FROM OPERATORI WHERE CODOP = '" & strCodUt & "'" sqlAdapter.SelectCommand = New SqlCommand(strSqlL, sqlConn) Dim cmdSql As New SqlCommandBuilder(sqlAdapter) sqlAdapter.InsertCommand = cmdSql.GetInsertCommand sqlAdapter.DeleteCommand = cmdSql.GetDeleteCommand sqlAdapter.UpdateCommand = cmdSql.GetUpdateCommand DsOperatori1.Clear() sqlAdapter.Fill(DsOperatori1, "OPERATORI") gestoreImg(txtStrPath.Text) Catch ex As Exception RaiseEvent Errore(Me.Text, ex) End Try
e scrivendo all'interno dei controlli il dataset viene modificato (scrivo su un txt 'intero ds per controllo)
qui chiamo i metodo update
tutte le colonne del ds hanno lo stato unchanged anke se sono effettivamente cambiate. Come posso fare?codice:Dim i, j As Integer Dim row As DataRow Dim newRow(16) As Object Dim str As String For Each row In DsOperatori1.Tables("OPERATORI").Rows str = str & j.ToString & ": " For i = 0 To 16 str = str & " " & i.ToString & ":" & row.Item(i) & " stato: " & row.RowState.ToString & vbCrLf Next str = str & vbCrLf j = j + 1 Next MsgBox("dataset: " & vbCrLf & str) Try sqlConn.Open() DsOperatori1.CaseSensitive = True i = sqlAdapter.Update(DsOperatori1.Tables("OPERATORI")) MsgBox("aggiornati " & i & " record") sqlConn.Close() Catch ex As Exception RaiseEvent Errore(Me.Text, ex) If sqlConn.State <> ConnectionState.Closed Then sqlConn.Close() End If End Try
questo è il ds:
codice:<?xml version="1.0" standalone="yes" ?> <xs:schema id="dsOperatori" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="dsOperatori" msdata:IsDataSet="true" msdata:Locale="it-IT"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="OPERATORI"> <xs:complexType> <xs:sequence> <xs:element name="CODOP" type="xs:string" minOccurs="0" /> <xs:element name="NOME" type="xs:string" minOccurs="0" /> <xs:element name="CODREP" type="xs:string" minOccurs="0" /> <xs:element name="DATAASSUNZIONE" type="xs:dateTime" minOccurs="0" /> <xs:element name="DATAFINERAPP" type="xs:dateTime" minOccurs="0" /> <xs:element name="CODOPALT" type="xs:string" minOccurs="0" /> <xs:element name="CODQUAL" type="xs:string" minOccurs="0" /> <xs:element name="CODTURNAZ" type="xs:string" minOccurs="0" /> <xs:element name="FLGTRASM" type="xs:boolean" minOccurs="0" /> <xs:element name="FLGTRASMP" type="xs:boolean" minOccurs="0" /> <xs:element name="DATAINS" type="xs:dateTime" minOccurs="0" /> <xs:element name="DATAMOD" type="xs:dateTime" minOccurs="0" /> <xs:element name="GI_TOLLBEF" type="xs:float" minOccurs="0" /> <xs:element name="GI_TOLLAFT" type="xs:float" minOccurs="0" /> <xs:element name="GI_TIPOCTR" type="xs:float" minOccurs="0" /> <xs:element name="ORGANIZ" type="xs:string" minOccurs="0" /> <xs:element name="GI_PATHFOTO" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>![]()
![]()

Rispondi quotando
