none
SSCE and VB: insert new rows with tableadapters

    Domanda

  • Hi everyone,

    I'm trying to develop a little budget manager for myself and I'm using VB with SQL Server Compact Edition (I don't want to use SQL Server Express) in VS2010.

    Well, I created the .sdf DB via VS, a dataset pointing a specific table of the DB and the insert query that I built works perfectly.

    In the code of a form I created a new tableadpater and a new dataset. The research query works just fine but the insert query doesn't seem to change anything at all in the DB.

    I try to be more specific: I open the tableadapter connection, launch the query command (tableadapter.queryname(parameters)) and close the tableadapter connection. Basically the same work I used to do in an old project with SQL Server Express (and it worked).

    So, what am I missing? I'm stucked for two weeks now and I've already researched the web up and down without finding any solution...

    Thanks in advance!

    P.S.

    I set the "Copy to Output" property of the DB to "Copy if newer"

    giovedì 9 febbraio 2012 08:20

Tutte le risposte

  • Ciao squall576,

    Hi everyone,

    I'm trying to develop a little budget manager for myself and I'm using VB with SQL Server Compact Edition (I don't want to use SQL Server Express) in VS2010.

    Well, I created the .sdf DB via VS, a dataset pointing a specific table of the DB and the insert query that I built works perfectly.

    In the code of a form I created a new tableadpater and a new dataset. The research query works just fine but the insert query doesn't seem to change anything at all in the DB.

    I try to be more specific: I open the tableadapter connection, launch the query command (tableadapter.queryname(parameters)) and close the tableadapter connection. Basically the same work I used to do in an old project with SQL Server Express (and it worked).

    So, what am I missing? I'm stucked for two weeks now and I've already researched the web up and down without finding any solution...

    Thanks in advance!

    P.S.

    I set the "Copy to Output" property of the DB to "Copy if newer"

    puoi gentimente postare la tua richiesta in Italiano  avendo postato sul forum Italiano dedicato a VisualBasic ? .

    Ciao.


    giovedì 9 febbraio 2012 08:46
  • Pardon, mi sembrava di essere su quello inglese.

    Allora, sto sviluppando un mini gestionale a mio solo utilizzo e anzichè usare il complesso SQL Server Express (complesso perchè lo voglio un po' più portable) sto provando ad usare SQL Server Compact Edition 3.5.

    Ho creato il file .sdf da Visual Studio, creato un DataSet + TableAdapter e creato una Query per la lettura (oltre a quelle predefinite) e una per la scrittura/inserimento.

    Lanciando da codice la query di lettura, nessun problema e funziona alla perfezione.

    Lanciando invece quella di inserimento non crea nessuna riga nel DB. Però, se lancio la query dal Query Builder dentro il dataset, funziona e nel DB si crea la nuova riga.

    In breve: creo in una form una nuova TableAdapter; faccio tableadapternome.connection.open(); tableadapternome.query(parametri); tableadapternome.connection.close().

    In un altro software che ho fatto usando SQL Server Express questa procedura funziona alla perfezione, con SQL Server Compact non succede nulla di nulla nel DB.

    Specifico anche che, la proprietà "Copy to Output" (ho VS in inglese) del DB l'ho impostata su "Copy if newer".

    Grazie in anticipo!

    giovedì 9 febbraio 2012 09:43
  • Pardon, mi sembrava di essere su quello inglese.

    Allora, sto sviluppando un mini gestionale a mio solo utilizzo e anzichè usare il complesso SQL Server Express (complesso perchè lo voglio un po' più portable) sto provando ad usare SQL Server Compact Edition 3.5.

    Ho creato il file .sdf da Visual Studio, creato un DataSet + TableAdapter e creato una Query per la lettura (oltre a quelle predefinite) e una per la scrittura/inserimento.

    Lanciando da codice la query di lettura, nessun problema e funziona alla perfezione.

    Lanciando invece quella di inserimento non crea nessuna riga nel DB. Però, se lancio la query dal Query Builder dentro il dataset, funziona e nel DB si crea la nuova riga.

    In breve: creo in una form una nuova TableAdapter; faccio tableadapternome.connection.open(); tableadapternome.query(parametri); tableadapternome.connection.close().

    In un altro software che ho fatto usando SQL Server Express questa procedura funziona alla perfezione, con SQL Server Compact non succede nulla di nulla nel DB.

    Specifico anche che, la proprietà "Copy to Output" (ho VS in inglese) del DB l'ho impostata su "Copy if newer".

    Grazie in anticipo!

    ciao

    OK per il copyifnewer altrimenti ti randi il DB ad ogni F5

    poi, non ho capito, il tuo problema è in lettura o scrittura?

    perchè se è in scrittura, dopo hce hai fatto un tableadapter devi lanciare l'Update su di esso con in parametro il tuo dataset/datatable/datarow che vuoi aggiornare/salvare

    a presto


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     

    giovedì 9 febbraio 2012 11:06
  • Pardon, mi sembrava di essere su quello inglese.

    Allora, sto sviluppando un mini gestionale a mio solo utilizzo e anzichè usare il complesso SQL Server Express (complesso perchè lo voglio un po' più portable) sto provando ad usare SQL Server Compact Edition 3.5.

    Ho creato il file .sdf da Visual Studio, creato un DataSet + TableAdapter e creato una Query per la lettura (oltre a quelle predefinite) e una per la scrittura/inserimento.

    Lanciando da codice la query di lettura, nessun problema e funziona alla perfezione.

    Lanciando invece quella di inserimento non crea nessuna riga nel DB. Però, se lancio la query dal Query Builder dentro il dataset, funziona e nel DB si crea la nuova riga.

    In breve: creo in una form una nuova TableAdapter; faccio tableadapternome.connection.open(); tableadapternome.query(parametri); tableadapternome.connection.close().

    In un altro software che ho fatto usando SQL Server Express questa procedura funziona alla perfezione, con SQL Server Compact non succede nulla di nulla nel DB.

    Specifico anche che, la proprietà "Copy to Output" (ho VS in inglese) del DB l'ho impostata su "Copy if newer".

    Grazie in anticipo!

    ciao

    OK per il copyifnewer altrimenti ti randi il DB ad ogni F5

    poi, non ho capito, il tuo problema è in lettura o scrittura?

    perchè se è in scrittura, dopo hce hai fatto un tableadapter devi lanciare l'Update su di esso con in parametro il tuo dataset/datatable/datarow che vuoi aggiornare/salvare

    a presto


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     

    Ciao e grazie per la risposta!

    Il mio problema è in scrittura tramite Query creata nel DataSet Editor. Provandola direttamente dentro lì, funziona, dentro il codice no.

    Quindi tu dici che devo creare il tableadapter, lanciare la query, e dargli update(nomedataset)?

    giovedì 9 febbraio 2012 11:09
  • Ciao squall576,

    Ciao e grazie per la risposta!

    Il mio problema è in scrittura tramite Query creata nel DataSet Editor. Provandola direttamente dentro lì, funziona, dentro il codice no.

    Quindi tu dici che devo creare il tableadapter, lanciare la query, e dargli update(nomedataset)?

    se hai il controllo TableAdapter per la scrittura all'interno del DataBase puoi fare uso del metodo Insert, per esempio

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TABELLA1ableAdapter.Insert("qui inserisci tutti i valori nei campi della tabella")
        End Sub

    Questo metodo inserisce la nuova riga , e dovresti vederla successivamente nel Database.

    Ciao , tienici aggiornati sul proseguo.


    giovedì 9 febbraio 2012 13:15
  • se hai il controllo TableAdapter per la scrittura all'interno del DataBase puoi fare uso del metodo Insert, per esempio
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TABELLA1ableAdapter.Insert("qui inserisci tutti i valori nei campi della tabella")
        End Sub

    Questo metodo inserisce la nuova riga , e dovresti vederla successivamente nel Database.

    Ciao , tienici aggiornati sul proseguo.

    Ciao, questo metodo l'ho già provato in precedenza, ma nel DB comunque la nuova riga creata non risultava...!
    giovedì 9 febbraio 2012 13:20
  • Ciao squall576,

    se hai il controllo TableAdapter per la scrittura all'interno del DataBase puoi fare uso del metodo Insert, per esempio

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TABELLA1ableAdapter.Insert("qui inserisci tutti i valori nei campi della tabella")
        End Sub

    Questo metodo inserisce la nuova riga , e dovresti vederla successivamente nel Database.

    Ciao , tienici aggiornati sul proseguo.

    Ciao, questo metodo l'ho già provato in precedenza, ma nel DB comunque la nuova riga creata non risultava...!

    Il mio problema è in scrittura tramite Query creata nel DataSet Editor. Provandola direttamente dentro lì, funziona, dentro il codice no.

    Quindi tu dici che devo creare il tableadapter, lanciare la query, e dargli update(nomedataset)?

    se posso permettermi , ti lascio un link a questo articolo di esempio sulle principali procedure per l'inserimento , la modifica e eliminazione di dati con DataBase

    Sql Compact http://code.msdn.microsoft.com/Esempio-applicazione-dati-70387089

    Il mio problema è in scrittura tramite Query creata nel DataSet Editor. Provandola direttamente dentro lì, funziona, dentro il codice no.

    Quindi tu dici che devo creare il tableadapter, lanciare la query, e dargli update(nomedataset)?

    Quindi hai creato la query di inserimento con la procedura guidata , perdona la domanda ma e semplicemente per avere un quadro più chiaro della situazione , hai anche agguinto la query alla TableAdapter associata al DataBase?

    Ciao.


    giovedì 9 febbraio 2012 19:16
  • Il mio problema è in scrittura tramite Query creata nel DataSet Editor. Provandola direttamente dentro lì, funziona, dentro il codice no.

    Quindi tu dici che devo creare il tableadapter, lanciare la query, e dargli update(nomedataset)?

    Quindi hai creato la query di inserimento con la procedura guidata , perdona la domanda ma e semplicemente per avere un quadro più chiaro della situazione , hai anche agguinto la query alla TableAdapter associata al DataBase?

    Ciao.

    Uhm...Io la Query l'ho creata attraverso la procedura guidata presente dentro il TableAdapter nel DataSet Editor/Designer..!

    Spero sia più chiaro così!

    venerdì 10 febbraio 2012 15:01
  • Ciao squall576,

    Uhm...Io la Query l'ho creata attraverso la procedura guidata presente dentro il TableAdapter nel DataSet Editor/Designer..!

    Spero sia più chiaro così!

    capito , per cui bisogna verificare come e stata scrittà la query nella procedura guidata , se vuoi e se puoi carica il progetto su skydrive , in modo da poterti aiutare in maniera più mirata.

    Ciao. 


    domenica 12 febbraio 2012 09:45
  • Ciao squall576,

    Uhm...Io la Query l'ho creata attraverso la procedura guidata presente dentro il TableAdapter nel DataSet Editor/Designer..!

    Spero sia più chiaro così!

    capito , per cui bisogna verificare come e stata scrittà la query nella procedura guidata , se vuoi e se puoi carica il progetto su skydrive , in modo da poterti aiutare in maniera più mirata.

    Ciao.

    Ciao,

    la Query creata è questa:

    INSERT INTO Customers
                      (ID, CompanyName, Address, CAP, City, Province, PIva, CF, Email, Telephone, Fax, Privacy)
    VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12)

    Proprietà della Query:

    - Modifier: public

    - Command type: Text

    - Execute Mode: Scalar

    Non ho skydrive...! Comunque, voi come programmereste l'inserimento di una nuova riga in un DB SSCE in VB (e non C# come nell'esempio postato prima)?

    domenica 12 febbraio 2012 11:38
  • Ciao squall576,

    Uhm...Io la Query l'ho creata attraverso la procedura guidata presente dentro il TableAdapter nel DataSet Editor/Designer..!

    Spero sia più chiaro così!

    capito , per cui bisogna verificare come e stata scrittà la query nella procedura guidata , se vuoi e se puoi carica il progetto su skydrive , in modo da poterti aiutare in maniera più mirata.

    Ciao.

    Ciao,

    la Query creata è questa:

    INSERT INTO Customers
                      (ID, CompanyName, Address, CAP, City, Province, PIva, CF, Email, Telephone, Fax, Privacy)
    VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12)

    Proprietà della Query:

    - Modifier: public

    - Command type: Text

    - Execute Mode: Scalar

    Non ho skydrive...! Comunque, voi come programmereste l'inserimento di una nuova riga in un DB SSCE in VB (e non C# come nell'esempio postato prima)?

    Tra parentesi, non mi funziona nemmeno una Query di update (sempre creata con la "procedura guidata" (di fatto poi la riscrivo io come mi serve) che dentro il DataSet Designer funziona, lanciata da codice no) quindi sbaglio qualcosa, ma non capisco cosa. Come già ho detto, ho anche provato a riprendere e riutilizzare codice che con un DB SQL Server Express funzionava alla perfezione, ma nulla di fatto. Non scrive le modifiche nel DB.

    Grazie per l'aiuto!

    domenica 12 febbraio 2012 11:42
  • Ciao squall576,

    Non ho skydrive...! Comunque, voi come programmereste l'inserimento di una nuova riga in un DB SSCE in VB (e non C# come nell'esempio postato prima)?

         scusa il ritardo della risposta , ma non mi arrivano le nitifiche via Email :( , sky drive dovresti averlo disponibile se hai un account su Hotmail.

    Ciao,

    la Query creata è questa:

    INSERT INTO Customers
                      (ID, CompanyName, Address, CAP, City, Province, PIva, CF, Email, Telephone, Fax, Privacy)
    VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12)

    Proprietà della Query:

    - Modifier: public

    - Command type: Text

    - Execute Mode: Scalar

    bene , prova modificandola con:

    -Modiefer  -->Pulic

    -Commandtype --> Text

    -Execute Mode --> NonQuery

    La domanda che non ho ancora chiesto e se nell'evento load del Form carichi allla TableAdapter mediante la Proprietà Fill il contenuto della Tabella presente nel tuo DataSet esempio.

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.TableAdapter1.Fill(Me.DataSet1.TABELLA1)
        End Sub
       

    Dovresti avere nell'evento load un codice simile a questo generato quando trascini il contenuto della Tabella da Origini Dati al Form.

    Ciao , tienici aggiornati.


    domenica 12 febbraio 2012 13:28
  • Ciao,

    la Query creata è questa:

    INSERT INTO Customers
                      (ID, CompanyName, Address, CAP, City, Province, PIva, CF, Email, Telephone, Fax, Privacy)
    VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12)

    Proprietà della Query:

    - Modifier: public

    - Command type: Text

    - Execute Mode: Scalar

    bene , prova modificandola con:

    -Modiefer  -->Pulic

    -Commandtype --> Text

    -Execute Mode --> NonQuery

    La domanda che non ho ancora chiesto e se nell'evento load del Form carichi allla TableAdapter mediante la Proprietà Fill il contenuto della Tabella presente nel tuo DataSet esempio.

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.TableAdapter1.Fill(Me.DataSet1.TABELLA1)
        End Sub
       

    Dovresti avere nell'evento load un codice simile a questo generato quando trascini il contenuto della Tabella da Origini Dati al Form.

    Ciao , tienici aggiornati.

    Effettivamente no, non avevo messo quella riga di codice. L'ho aggiunta ma...nulla di fatto. Sono proprio bloccato!
    domenica 12 febbraio 2012 16:52
  • Ciao Squall576,

    Effettivamente no, non avevo messo quella riga di codice. L'ho aggiunta ma...nulla di fatto. Sono proprio bloccato!

    e davvero strano , mi vien da persare che vi e qualcosa di non corretto nella progettazione del DataSet , se possibile prova a rieseguire nuovamente la procedura guidata di un nuovo Dataset ,rimuovendo i riferimenti atuali.

    Ciao , tienici sempre aggiornati. 


    domenica 12 febbraio 2012 17:36
  • Ciao Squall576,

    Effettivamente no, non avevo messo quella riga di codice. L'ho aggiunta ma...nulla di fatto. Sono proprio bloccato!

    e davvero strano , mi vien da persare che vi e qualcosa di non corretto nella progettazione del DataSet , se possibile prova a rieseguire nuovamente la procedura guidata di un nuovo Dataset ,rimuovendo i riferimenti atuali.

    Ciao , tienici sempre aggiornati.

    Ho provato e mi sono accorto di non aver aggiunto il BindingSource nella Form in questione. Ora le modifiche internamente al programma funzionano, nel senso che facendogli aggiungere una Row da codice, in un GridView presente in un'altra Form l'aggiunta è presente. Però chiudendo il programma, nel DB l'aggiunta non viene riportata.

    Aggiungo che invece, aggiunte fatte direttamente all'interno del GridView vengono applicate al DB!

    • Contrassegnato come risposta squall576 domenica 12 febbraio 2012 18:29
    • Contrassegno come risposta annullato squall576 domenica 12 febbraio 2012 18:29
    domenica 12 febbraio 2012 18:28
  • Ciao Squall576,

    Ciao Squall576,

    Effettivamente no, non avevo messo quella riga di codice. L'ho aggiunta ma...nulla di fatto. Sono proprio bloccato!

    e davvero strano , mi vien da persare che vi e qualcosa di non corretto nella progettazione del DataSet , se possibile prova a rieseguire nuovamente la procedura guidata di un nuovo Dataset ,rimuovendo i riferimenti atuali.

    Ciao , tienici sempre aggiornati.

    Ho provato e mi sono accorto di non aver aggiunto il BindingSource nella Form in questione. Ora le modifiche internamente al programma funzionano, nel senso che facendogli aggiungere una Row da codice, in un GridView presente in un'altra Form l'aggiunta è presente. Però chiudendo il programma, nel DB l'aggiunta non viene riportata.

    Aggiungo che invece, aggiunte fatte direttamente all'interno del GridView vengono applicate al DB!

    ecco :) , qualcosa mancava , per cui stando a quanto ho capito nel form principale riesci ad inserire i dati all'interno del DataBase  , mentre se provi in un form secondario hai problemi , confermi ?.

    Ciao.


    domenica 12 febbraio 2012 18:52
  • ecco :) , qualcosa mancava , per cui stando a quanto ho capito nel form principale riesci ad inserire i dati all'interno del DataBase  , mentre se provi in un form secondario hai problemi , confermi ?.

    Ciao.

    Nope!
    Allora:

    Form2 -Inserimento da DataGridView --> modifiche nel DB presenti e salvate;

    Form1 - Inserimento da codice della Row --> nel DataGridView della Form2 sono presenti; nel DB no.
    domenica 12 febbraio 2012 19:36
  • Ciao Squall576,

    ecco :) , qualcosa mancava , per cui stando a quanto ho capito nel form principale riesci ad inserire i dati all'interno del DataBase  , mentre se provi in un form secondario hai problemi , confermi ?.

    Ciao.

    Nope!
    Allora:

    Form2 -Inserimento da DataGridView --> modifiche nel DB presenti e salvate;

    Form1 - Inserimento da codice della Row --> nel DataGridView della Form2 sono presenti; nel DB no.

    ho capito , nel Form2 presumo tu abbia tutti i componenti creati con la procedura guidata del DataSet , mentre da Form 1 inserisci i dati mediante DataRow e li aggiungi al Controllo DataGridView in Form2.

    Per cui oltre inserire i dati sul controllo DatagridView in Form2 , devi anche dal Form1 richiamare il metodo Insert che esegua l'update sul DataBase , il modo e creare un metodo in Form2 in cui inserisci il codice per l'aggiornamento dei Dati e lo richiami dal Form1 dopo aver inserito mediante DataRow tutti i dati necessari nel controllo DataGridView.

    Ciao , tienici  aggiornati.


    domenica 12 febbraio 2012 20:23
  • ho capito , nel Form2 presumo tu abbia tutti i componenti creati con la procedura guidata del DataSet , mentre da Form 1 inserisci i dati mediante DataRow e li aggiungi al Controllo DataGridView in Form2.

    Per cui oltre inserire i dati sul controllo DatagridView in Form2 , devi anche dal Form1 richiamare il metodo Insert che esegua l'update sul DataBase , il modo e creare un metodo in Form2 in cui inserisci il codice per l'aggiornamento dei Dati e lo richiami dal Form1 dopo aver inserito mediante DataRow tutti i dati necessari nel controllo DataGridView.

    Uhm...in realtà io non uso nessuna DataRow...!

    Nel Form2 si, ho creato il DataGridView e associato alla tabella con la procedura guidata. E lì funziona tutto, compreso il salvataggio su DB.

    Dalla Form1, provo ad inserire una nuova riga solo via codice e succede che le modifiche vengono probabilmente salvate nel DataSet (infatti se ritorno alla Form2, nel DataGridView c'è l'aggiornamento), ma non vengono salvate nel DB perchè se chiudo e riapro il programma, la riga inserita non c'è più.

    Spero di essermi spiegato un po' meglio!

    domenica 12 febbraio 2012 20:39
  • Ciao Squall576,

    ho capito , nel Form2 presumo tu abbia tutti i componenti creati con la procedura guidata del DataSet , mentre da Form 1 inserisci i dati mediante DataRow e li aggiungi al Controllo DataGridView in Form2.

    Per cui oltre inserire i dati sul controllo DatagridView in Form2 , devi anche dal Form1 richiamare il metodo Insert che esegua l'update sul DataBase , il modo e creare un metodo in Form2 in cui inserisci il codice per l'aggiornamento dei Dati e lo richiami dal Form1 dopo aver inserito mediante DataRow tutti i dati necessari nel controllo DataGridView.

    Uhm...in realtà io non uso nessuna DataRow...!

    Nel Form2 si, ho creato il DataGridView e associato alla tabella con la procedura guidata. E lì funziona tutto, compreso il salvataggio su DB.

    Dalla Form1, provo ad inserire una nuova riga solo via codice e succede che le modifiche vengono probabilmente salvate nel DataSet (infatti se ritorno alla Form2, nel DataGridView c'è l'aggiornamento), ma non vengono salvate nel DB perchè se chiudo e riapro il programma, la riga inserita non c'è più.

    Spero di essermi spiegato un po' meglio!

    probabilmente sono io che non riesco a comprendere :) posso gentilmente chiederti come inserisci la nuova riga dal Form1 al DataGridView del Form2 ?

    Ciao.


    domenica 12 febbraio 2012 20:49
  • probabilmente sono io che non riesco a comprendere :) posso chederti come inserisci la nuova riga dal Form1 al DataGridView del Form2 ?

    Ciao.

    No non inserisco la nuova riga nel DataGridView! Uso sempre la Query creata nel DataSet Designer!Uso questo codice:

    taCustomers.Connection.Open()
    taCustomers.Insert(lid + 1, tbCompany.Text, tbAddress.Text, CInt(tbCAP.Text), tbCity.Text, tbProvince.Text, tbPIva.Text, tbCF.Text, tbEmail.Text, tbTel.Text, tbTel2.Text, lid)
    taCustomers.Update(DsCustomers1)
    taCustomers.Connection.Close()
    domenica 12 febbraio 2012 20:52
  • probabilmente sono io che non riesco a comprendere :) posso chederti come inserisci la nuova riga dal Form1 al DataGridView del Form2 ?

    Ciao.

    No non inserisco la nuova riga nel DataGridView! Uso sempre la Query creata nel DataSet Designer!Uso questo codice:

    taCustomers.Connection.Open()
    taCustomers.Insert(lid + 1, tbCompany.Text, tbAddress.Text, CInt(tbCAP.Text), tbCity.Text, tbProvince.Text, tbPIva.Text, tbCF.Text, tbEmail.Text, tbTel.Text, tbTel2.Text, lid)
    taCustomers.Update(DsCustomers1)
    taCustomers.Connection.Close()

    E, con questo codice, vedo la nuova riga nel DataGridView, ma nel DB no!
    domenica 12 febbraio 2012 20:52
  • Ciao Squall576,

    probabilmente sono io che non riesco a comprendere :) posso chederti come inserisci la nuova riga dal Form1 al DataGridView del Form2 ?

    Ciao.

    No non inserisco la nuova riga nel DataGridView! Uso sempre la Query creata nel DataSet Designer!Uso questo codice:

    taCustomers.Connection.Open()
    taCustomers.Insert(lid + 1, tbCompany.Text, tbAddress.Text, CInt(tbCAP.Text), tbCity.Text, tbProvince.Text, tbPIva.Text, tbCF.Text, tbEmail.Text, tbTel.Text, tbTel2.Text, lid)
    taCustomers.Update(DsCustomers1)
    taCustomers.Connection.Close()


    E, con questo codice, vedo la nuova riga nel DataGridView, ma nel DB no!

    bene , per cui anche nel Form1 hai gli stessi oggetti del Form2 creati dalla procedura guidata escluso il controllo DataGridView.

    Ciao.


    domenica 12 febbraio 2012 21:18
  • Ciao Squall576,

    probabilmente sono io che non riesco a comprendere :) posso chederti come inserisci la nuova riga dal Form1 al DataGridView del Form2 ?

    Ciao.

    No non inserisco la nuova riga nel DataGridView! Uso sempre la Query creata nel DataSet Designer!Uso questo codice:

    taCustomers.Connection.Open()
    taCustomers.Insert(lid + 1, tbCompany.Text, tbAddress.Text, CInt(tbCAP.Text), tbCity.Text, tbProvince.Text, tbPIva.Text, tbCF.Text, tbEmail.Text, tbTel.Text, tbTel2.Text, lid)
    taCustomers.Update(DsCustomers1)
    taCustomers.Connection.Close()


    E, con questo codice, vedo la nuova riga nel DataGridView, ma nel DB no!

    bene , per cui anche nel Form1 hai gli stessi oggetti del Form2 creati dalla procedura guidata escluso il controllo DataGridView.

    Uhm...quindi? Penso di non aver capito cosa vuoi dire! xD
    domenica 12 febbraio 2012 21:31
  • Ciao Squall576,

    Uhm...quindi? Penso di non aver capito cosa vuoi dire! xD

    Hai scritto che in Form1 utilizzi il codice scritto nei tuoi ultimi post ,quello che non mi torna e come fai a richiamare dal Form1 i componenti del Form2 senza dichiarare un istanza del Form2 o senza utilizzare una defaultIstance di Form2 :)

    Provero a scrivere un esempio , solo un attimo di pazienza :)

    Ciao. 


    domenica 12 febbraio 2012 21:46
  • Ciao Squall576,

    Uhm...quindi? Penso di non aver capito cosa vuoi dire! xD

    Hai scritto che in Form1 utilizzi il codice scritto nei tuoi ultimi post ,quello che non mi torna e come fai a richiamare dal Form1 i componenti del Form2 senza dichiarare un istanza del Form2 o senza utilizzare una defaultIstance di Form2 :)

    Provero a scrivere un esempio , solo un attimo di pazienza :)

    Ciao.

    Ma io non richiamo i componenti del Form2! Che la riga creata via codice dal Form1 appaia nel DataGridView è solo una constatazione!

    Grazie per l'aiuto!;)


    • Modificato squall576 domenica 12 febbraio 2012 22:03
    domenica 12 febbraio 2012 22:02
  • Ciao squall576,

    Ma io non richiamo i componenti del Form2! Che la riga creata via codice dal Form1 appaia nel DataGridView è solo una constatazione!

    Grazie per l'aiuto!;)

    guardati questo esempio , se e ciò che stai chedendo https://skydrive.live.com/redir.aspx?cid=da622d2ca9c0a629&resid=DA622D2CA9C0A629!452&parid=root

    Ciao.


    domenica 12 febbraio 2012 22:13
  • Ciao squall576,

    Ma io non richiamo i componenti del Form2! Che la riga creata via codice dal Form1 appaia nel DataGridView è solo una constatazione!

    Grazie per l'aiuto!;)

    guardati questo esempio , se e ciò che stai chedendo https://skydrive.live.com/redir.aspx?cid=da622d2ca9c0a629&resid=DA622D2CA9C0A629!452&parid=root

    C'è una cosa che non mi è chiara: il DB creato è nella cartella del progetto. Poi nelle cartelle Debug e Release si crea una copia. Lanciando il debug le modifiche si creano nel DB presente nella cartella Debug, ma in fase di creazione finale del progetto, creando anche un installer ecc... Che DB va ad utilizzare il programma?

    Comunque ora mi succede una cosa strana: lancio l'aggiunta della Row da codice, nella GridView si vede. Esco dal programma, rientro, e nel GridView c'è ancora. Riesco e rientro e la nuova Raw non c'è più.

    domenica 12 febbraio 2012 22:45
  • Ciao Squall576,

    C'è una cosa che non mi è chiara: il DB creato è nella cartella del progetto. Poi nelle cartelle Debug e Release si crea una copia. Lanciando il debug le modifiche si creano nel DB presente nella cartella Debug, ma in fase di creazione finale del progetto, creando anche un installer ecc... Che DB va ad utilizzare il programma?

    Personalmente io creo la stringa di Connessione a Runtime , per cui a seconda di dove si trova il DataBase , creo la stringa di connessione , mentre con la procedura guidata del Dataset se hai abilitato il salvataggio della stringa di connnessione il percorso deve essere esattamente quello del progetto in cui lavori adesso.

    Comunque ora mi succede una cosa strana: lancio l'aggiunta della Row da codice, nella GridView si vede. Esco dal programma, rientro, e nel GridView c'è ancora. Riesco e rientro e la nuova Raw non c'è più.

    Questo con l'esempio postato ?

    Ciao.


    domenica 12 febbraio 2012 22:59
  • Personalmente io creo la stringa di Connessione a Runtime , per cui a seconda di dove si trova il DataBase , creo la stringa di connessione , mentre con la procedura guidata del Dataset se hai abilitato il salvataggio della stringa di connnessione il percorso deve essere esattamente quello del progetto in cui lavori adesso.

    Mi puoi spiegare brevemente come gestisci la stringa di Connessione da Runtime?

    Comunque ora mi succede una cosa strana: lancio l'aggiunta della Row da codice, nella GridView si vede. Esco dal programma, rientro, e nel GridView c'è ancora. Riesco e rientro e la nuova Raw non c'è più.

    Questo con l'esempio postato ?

    No, con l'esempio postato funziona tutto. Ho aggiunto al mio programma il TableAdapterManager e il comando TableAdapterManager.UpdateAll(DatasetCustomers1).

    Tra parentesi, io ho DataSet, TableAdapter, TableAdapterManager e BindingSource sia nella Form1 che nella Form2!

    Grazie,

    Ciao!

    • Modificato squall576 martedì 14 febbraio 2012 07:48
    martedì 14 febbraio 2012 07:46
  • Ciao Squall576,

    Mi puoi spiegare brevemente come gestisci la stringa di Connessione da Runtime?

    Io in gerere utilizzo una avariabile di tipo string nelle impostazioni dell'applicazione e la valorizzo al primo avvio , ho se voglio cambiare in futuro la connessione ai dati.

    Tra parentesi, io ho DataSet, TableAdapter, TableAdapterManager e BindingSource sia nella Form1 che nella Form2!

    Ne ero convinto , ecco perchè ti avevo domandato come facevi dal Form1 a richiamare il metodo Insert senza creare un istanza del Form2 o senza almeno (anche se sconsigliato) utilizzare la default Istance.

    Prova con l'esempio che ho postato , se hai ancora bisogno chiedi , se posso esserti di aiuto ben volentieri.

    Ciao , a risentirci.


    martedì 14 febbraio 2012 08:07
  • Ciao Squall576,

    Mi puoi spiegare brevemente come gestisci la stringa di Connessione da Runtime?

    Io in gerere utilizzo una avariabile di tipo string nelle impostazioni dell'applicazione e la valorizzo al primo avvio , ho se voglio cambiare in futuro la connessione ai dati.

    Tra parentesi, io ho DataSet, TableAdapter, TableAdapterManager e BindingSource sia nella Form1 che nella Form2!

    Ne ero convinto , ecco perchè ti avevo domandato come facevi dal Form1 a richiamare il metodo Insert senza creare un istanza del Form2 o senza almeno (anche se sconsigliato) utilizzare la default Istance.

    Prova con l'esempio che ho postato , se hai ancora bisogno chiedi , se posso esserti di aiuto ben volentieri.

    Ciao , a risentirci.

    No, con l'esempio che hai postato funziona tutto! Provo a lavorarci su.
    martedì 14 febbraio 2012 09:01
  • Ciao Squall576,

    No, con l'esempio che hai postato funziona tutto! Provo a lavorarci su.

    va bene :) , a risentirci.

    Ciao e buon lavoro.


    martedì 14 febbraio 2012 09:30
  • Ora sembra funzionare tutto! Grazie mille!

    Posso fare un'altra domanda (diversa da SQL Server) o devo creare un nuovo thread?

    martedì 14 febbraio 2012 11:04
  • Ciao Squall576,

    Ora sembra funzionare tutto! Grazie mille!

    Prego.

    Posso fare un'altra domanda (diversa da SQL Server) o devo creare un nuovo thread?

    Se hai una nuova domanda , apri un nuovo thread.

    Ciao a risentirci.


    martedì 14 febbraio 2012 11:14