Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Binding Source Binding navigator
martedì 07 aprile 2015 - 17.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows 7
|
SQL Server 2008 R2
|
Access (.mdb)
|
Office 2010
|
Internet explorer 8.0
Rigiova
Profilo
| Newbie
18
messaggi | Data Invio:
mar 7 apr 2015 - 17:36
Salve
In questa applicazione in VB 2010 ho due form
IL primo Form con questo codice:
----------------------------------------------------------------
Public Class FormProva
Dim MioAdapter As New SqlDataAdapter
Dim Tbl1 As New DataTable
Dim MioBS As New BindingSource
Private Sub FormProva_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim ConnSafDB As New SqlConnection
' restituisce un oggetto connessione non aperto
ConnSafDB = GlobalFunction.ConnettiDB
ConnSafDB.Open()
' imposto le varie proprieta di Adapter SelectCommnd UpdateCommand DeleteCommand UpdateCommand
Dim UnitCommand As New SqlCommand("Select * from TblCategNominativiCF", ConnSafDB)
MioAdapter.SelectCommand = UnitCommand
UnitCommand = New SqlCommand("INSERT iNTO TblCategNominativiCF(IdCategoria,DescrizioneCategoria) VALUES (@IdCat,@DesCat)", ConnSafDB)
UnitCommand.Parameters.Add("@IdCAt", SqlDbType.VarChar, 3, "IdCategoria")
UnitCommand.Parameters.Add("@DesCat", SqlDbType.VarChar, 20, "DescrizioneCategoria")
MioAdapter.InsertCommand = UnitCommand
UnitCommand = New SqlCommand("UPDATE tblCategNominativiCF SET DescrizioneCategoria=@DesCat WHERE IdCategoria=@VecchioValIdCat", ConnSafDB)
UnitCommand.Parameters.Add("@IdCAt", SqlDbType.VarChar, 3, "IdCategoria")
UnitCommand.Parameters.Add("@DesCat", SqlDbType.VarChar, 20, "DescrizioneCategoria")
Dim VecchioValParam As SqlParameter = UnitCommand.Parameters.Add("@VecchioValIdCat", SqlDbType.NChar, 3, "IdCategoria")
VecchioValParam.SourceVersion = DataRowVersion.Original
MioAdapter.UpdateCommand = UnitCommand
UnitCommand = New SqlCommand("DELETE FROM TblcategNominativiCF where IdCategoria=@IdCatOrig", ConnSafDB)
UnitCommand.Parameters.Add("@IdCatOrig", SqlDbType.NChar, 3, "IdCategoria")
VecchioValParam.SourceVersion = DataRowVersion.Original
MioAdapter.DeleteCommand = UnitCommand
' Dim MioDataSet As New DataSet
' possiamo attribuire anche il dataset facendo riferimento all'indice della tbl
' DataGridView1.DataSource = MioDataSet.Tables(0)
MioAdapter.Fill(Tbl1)
BindingNavigator1.BindingSource = MioBS
MioBS.DataSource = Tbl1
ConnettiDB.Close()
' associo l'origina dati ai controlli
txtIdCategoria.Clear()
txtDescrizioneCategoria.Clear()
txtIdCategoria.DataBindings.Add("text", MioBS, "IdCategoria")
txtDescrizioneCategoria.DataBindings.Add("text", MioBS, "DescrizioneCategoria")
End Sub
Private Sub btnConferma_Click(sender As System.Object, e As System.EventArgs) Handles btnConferma.Click
MioBS.EndEdit()
MioAdapter.Update(Tbl1)
End Sub
---------------------------------------------------------------------------
Funziona bene Quando Clicco sul pulsante aggiungi "+" Vengono cancellati i valori nei controlli, inserisco i nuovi e salvo sul DB
Mentre questo codice identico in quello che dovrebbe fare:
------------------------------------------------------------------------------------------
Public Class FrmProtMovimenti
Dim MioAdapter As New SqlDataAdapter
Dim Tbl1 As New DataTable
Dim MioBS As New BindingSource
Private Sub FrmProtMovimenti_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim ConnSafDB As New SqlConnection
ConnSafDB = GlobalFunction.ConnettiDB
ConnSafDB.Open()
' Dim UnitCommand As New SqlCommand("Select * from TblProtocolliMovimenti", ConnSafDB)
Dim UnitCommand As New SqlCommand("Select IdProtocollo,DescrizProtocollo,GeneraDocFiscale,AzzeramentoAnno,UltimoNumeroCOrrente,IdAzienda from TblProtocolliMovimenti", ConnSafDB)
'Dim UnitCommand As New SqlCommand("Select IdProtocollo,DescrizProtocollo,GeneraDocFiscale,AzzeramentoAnno,UltimoNumeroCOrrente,A.IdAzienda,B.NominativoAzienda from TblProtocolliMovimenti as A inner join TblAziendeProdotti as B on A.IdAzienda=B.IdAzienda", ConnSafDB)
MioAdapter.SelectCommand = UnitCommand
UnitCommand = New SqlCommand("INSERT INTO TblProtocolliMovimenti (IdProtocollo,DescrizProtocollo,GeneraDocFiscale,AzzeramentoAnno,UltimoNumeroCorrente,IdAzienda) VALUES (@IdProtocollo,@DescrizProtocollo,@GeneraDocFiscale,@AzzeramentoAnno,@UltimoNumeroCorrente,@IdAzienda)", ConnSafDB)
UnitCommand.Parameters.Add("@IdProtocollo", SqlDbType.VarChar, 5, "IdProtocollo")
UnitCommand.Parameters.Add("@DescrizProtocollo", SqlDbType.VarChar, 25, "DescrizProtocollo")
UnitCommand.Parameters.Add("@GeneraDocFiscale", SqlDbType.VarChar, 5, "GeneraDocFiscale")
UnitCommand.Parameters.Add("@AzzeramentoAnno", SqlDbType.VarChar, 5, "AzzeramentoAnno")
UnitCommand.Parameters.Add("@UltimoNumeroCorrente", SqlDbType.VarChar, 5, "UltimoNumeroCorrente")
UnitCommand.Parameters.Add("@IdAzienda", SqlDbType.VarChar, 5, "IdAzienda")
MioAdapter.InsertCommand = UnitCommand
UnitCommand = New SqlCommand("Update TblProtocolliMovimenti set DescrizProtocollo=@DescrizProtocollo,GeneraDocFiscale=@GeneraDocFiscale,AzzeramentoAnno=@AzzeramentoAnno, " &
" UltimoNumeroCorrente=@UltimoNumeroCorrente,IdAzienda=@IdAzienda WHERE IdProtocollo=@IdVecchioProt", ConnSafDB)
UnitCommand.Parameters.Add("@DescrizProtocollo", SqlDbType.VarChar, 25, "DescrizProtocollo")
UnitCommand.Parameters.Add("@GeneraDocFiscale", SqlDbType.VarChar, 5, "GeneraDocFiscale")
UnitCommand.Parameters.Add("@AzzeramentoAnno", SqlDbType.VarChar, 5, "AzzeramentoAnno")
UnitCommand.Parameters.Add("@UltimoNumeroCorrente", SqlDbType.VarChar, 5, "UltimoNumeroCorrente")
UnitCommand.Parameters.Add("@IdAzienda", SqlDbType.VarChar, 5, "IdAzienda")
Dim VecchioIdProt As SqlParameter = UnitCommand.Parameters.Add("@IdVecchioProt", SqlDbType.VarChar, 5, "IdProtocollo")
VecchioIdProt.SourceVersion = DataRowVersion.Original
MioAdapter.UpdateCommand = UnitCommand
UnitCommand = New SqlCommand("DELETE FROM TblProtocolliMovimenti where IdProtocollo=@IdVecchioProt", ConnSafDB)
UnitCommand.Parameters.Add("@IdVecchioProt", SqlDbType.VarChar, 5, "IdProtocollo")
VecchioIdProt.SourceVersion = DataRowVersion.Original
MioAdapter.DeleteCommand = UnitCommand
MioAdapter.Fill(Tbl1)
BindingNavigator12.BindingSource = MioBS
MioBS.DataSource = Tbl1
ConnSafDB.Close()
txtIdProtocollo.Clear()
txtDescrizioneProtocollo.Clear()
CheckBox1.DataBindings.Clear()
CheckBox2.DataBindings.Clear()
txtIdAzienda.Clear()
txtUltimoNumero.Clear()
txtIdProtocollo.DataBindings.Add("text", MioBS, "IdProtocollo")
txtDescrizioneProtocollo.DataBindings.Add("text", MioBS, "DescrizProtocollo")
CheckBox1.DataBindings.Add("checked", MioBS, "GeneraDocFiscale")
CheckBox2.DataBindings.Add("checked", MioBS, "AzzeramentoAnno")
txtUltimoNumero.DataBindings.Add("text", MioBS, "UltimoNumeroCOrrente")
txtIdAzienda.DataBindings.Add("text", MioBS, "Idazienda")
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
MioBS.EndEdit()
MioAdapter.Update(Tbl1)
End Sub
-----------------------------------------------------------------------------------
Non funziona. Quando premo il taso Aggiungi del BindingNavigator, non mi cancella i valori nei controlli per permettermi di inserire quei nuovi.
Varia solamente il valore della textbox del BindNav che visualizza il numero dei record
Vorrei comprendere per bene il concetto di BindingSource . Se non ho capito male tale classe rappresenta l'origine dati per i ctr del Form che possiamo scorrere modificare elimin,inserire nuovi record magari aiutati dal Binding navigator Per le modifiche dei dati da passare al DB bisogna sempre /Tassativamente avvalersi del DataAdapter.update che richiamano le sue istruzioni insertCommand updateCommand DeleteCommand .Vorrei capire anche bene i concetti di CurrencyManager e bindingContest Se avete del materiale da passarmi che spieghi in maniera semplice tali argomenti vi sarei grato
Ciao
Gianni
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !