Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-02-2010, 14:05   #1
J0k3r91
Member
 
Iscritto dal: Apr 2008
Messaggi: 101
[C#] Interazione fra C# e database SQL Server!

Ciao a tutti!

Mi trovo di fronte a un problema che cerco di risolvere ormai da diversi giorni.
Premetto che sono ancora uno studente e le mie conoscenze di programmazione (sopratutto se di mezzo c'è del SQL) non sono ancora proprio delle migliori!

Sto sviluppando un'applicativo C# in WPF che mi memorizzi e carichi dei dati da un database SQL Server da e nel mio programma.

Ho generato le Query GetData() e Fill() e la prima di esse funziona perfettamente.

Il mio problema sta nel Fill(): la Query SQL che mi fal'INSERT dei dati nel database è esatta (se infatti provo tramite Query Builder --> Execute Query funziona tutto e mi riempie la mia Table tblFilm senza problemi con una nuova row).

Ma come faccio a farlo tramite codice C#??

Sarà che faccio un gran casino fra sti TableAdapter, DataSet, DataTable, DataRow, ecc..!!

Al momento il mio codice in C# gira e non da errore, ma non fa proprio un bel niente!!

Qualcuno ha anche solo un codice generico per fare la Fill in un db?

La parte C# che non va è la seguente:
Codice:
tblFilmTableAdapter adapt = new tblFilmTableAdapter();
DsDataFilm.tblFilmDataTable table = new DsDataFilm.tblFilmDataTable(); //il mio DataSet
DataRow row = table.NewtblFilmRow();
row["TITOLO"] = "Prova";
row["ANNO"] = 1988;
row["GENERE"] = "Action";
row["RATING"] = 5;
row["TRAMA"] = "asdfghjklpoi";
row["LOCANDINA"] = "url:\\locandina.jpg";
adapt.FillBase(table, 4); //Fill della table fatta prima nella row con ID = 4.. (@Param1)
Dove "4" sarebbe l'ID della row da riempire..





Ho in realtà due metodi Fill (Fill e FillBase) uno che accetta una table e l'altro che accetta ogni singolo parametro. Nessuno dei due tramite C# va..

In definitiva.. come faccio a creare una nuova row e a metterci tutti i miei dati??

Qualcuno sa darmi una dritta? ho cercato in giro ma non ho trovato niente che mi funzionasse!
__________________
CPU: Intel Core 2 Quad [email protected] cooled by Cooler Master Gemini II (413x8, FSB@1652Mhz, 1.44v) MB: Gigabyte GA-P45-UD3LR Ram: 4GB DDR2@826Mhz (5-7-7-20) Sk Video: XFX8800GT A.D. Edition XXX (GPU: 670Mhz, MEM: 1950Mhz, GDDR3 512Mb) HDD: 2xMaxtor DiamondMax 160GB 8Mb 7200rpm + Seagate 1Tb Alimentatore: Corsair TX650W Schermo: LCD ASUS VW222 22" Casse: Creative 5.1 S.O.: Windows 7 Ultimate 64bit Adsl (Down/Up): Fastweb 7Mbit / 512Kb Multimedia HDD: Iomega ScreenPlay Director HD 1Tb

Ultima modifica di J0k3r91 : 15-02-2010 alle 16:57.
J0k3r91 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 13:05   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Non prenderla come una "critica", ma francamente non vedo il perchè di tanta complicazione per fare una Insert su una tabella sola.
Il fatto che i DataSet siano il cuore di ADO.NET non significa che sia sempre obbligatorio farne uso.
Provato con un semplicissimo SqlCommand ?
http://www.codeproject.com/KB/databa...in_csharp.aspx
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 13:21   #3
J0k3r91
Member
 
Iscritto dal: Apr 2008
Messaggi: 101
Ciao MarcoGG.

Il fatto è che i DataSet li DEVO utilizzare perchè sono parte dell'esercizio che dobbiamo svolgere!

Altrimenti l'avrei fatto prima..

Quindi, sempre utilizzando il DataSet.. come potrei fare

__________________
CPU: Intel Core 2 Quad [email protected] cooled by Cooler Master Gemini II (413x8, FSB@1652Mhz, 1.44v) MB: Gigabyte GA-P45-UD3LR Ram: 4GB DDR2@826Mhz (5-7-7-20) Sk Video: XFX8800GT A.D. Edition XXX (GPU: 670Mhz, MEM: 1950Mhz, GDDR3 512Mb) HDD: 2xMaxtor DiamondMax 160GB 8Mb 7200rpm + Seagate 1Tb Alimentatore: Corsair TX650W Schermo: LCD ASUS VW222 22" Casse: Creative 5.1 S.O.: Windows 7 Ultimate 64bit Adsl (Down/Up): Fastweb 7Mbit / 512Kb Multimedia HDD: Iomega ScreenPlay Director HD 1Tb
J0k3r91 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 13:24   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non prenderla come una "critica", ma francamente non vedo il perchè di tanta complicazione per fare una Insert su una tabella sola.
Il fatto che i DataSet siano il cuore di ADO.NET non significa che sia sempre obbligatorio farne uso.
Provato con un semplicissimo SqlCommand ?
http://www.codeproject.com/KB/databa...in_csharp.aspx
quoto. Connection e Command e se proprio ci si deve divertire si pilotano le Transaction.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 13:54   #5
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da J0k3r91 Guarda i messaggi
Ciao MarcoGG.

Il fatto è che i DataSet li DEVO utilizzare perchè sono parte dell'esercizio che dobbiamo svolgere!

Altrimenti l'avrei fatto prima..

Quindi, sempre utilizzando il DataSet.. come potrei fare

Allora assicurati di eseguire l'AcceptChanges() sul DataSet ( o DataTable ) interessato, e poi esegui l'Update :
http://msdn.microsoft.com/it-it/libr...3x(VS.80).aspx

Il fatto che dichiari nel tuo post iniziale che il codice C# gira senza errori, ma a DB "non fa niente", mi fa pensare ad una dimenticanza di questo genere...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 13:57   #6
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
e se proprio ci si deve divertire si pilotano le Transaction.
E ri-quoto. Certo, per chi ha uno strano concetto di "divertimento"...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 14:24   #7
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Spero che sia un esercizio scolastico e non universitario, perchè programmare ad un solo livello, diciamo 1+ un wrapper, non è proprio il massimo, gestendo di fatto la persistenza dallo strato presentazione.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 14:37   #8
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Spero che sia un esercizio scolastico e non universitario, perchè programmare ad un solo livello, diciamo 1+ un wrapper, non è proprio il massimo, gestendo di fatto la persistenza dallo strato presentazione.
al corso di DB abbiamo fatto le peggio porcate dal punto di vista della separazione degli strati proprio perché era un esame di DB e non di Ingegneria del Software o Architetture Software

(resta cmq una porcata eh)
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 17:20   #9
J0k3r91
Member
 
Iscritto dal: Apr 2008
Messaggi: 101
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Spero che sia un esercizio scolastico e non universitario, perchè programmare ad un solo livello, diciamo 1+ un wrapper, non è proprio il massimo, gestendo di fatto la persistenza dallo strato presentazione.
Sisi è solo a livello scolastico superiore, non universitario
__________________
CPU: Intel Core 2 Quad [email protected] cooled by Cooler Master Gemini II (413x8, FSB@1652Mhz, 1.44v) MB: Gigabyte GA-P45-UD3LR Ram: 4GB DDR2@826Mhz (5-7-7-20) Sk Video: XFX8800GT A.D. Edition XXX (GPU: 670Mhz, MEM: 1950Mhz, GDDR3 512Mb) HDD: 2xMaxtor DiamondMax 160GB 8Mb 7200rpm + Seagate 1Tb Alimentatore: Corsair TX650W Schermo: LCD ASUS VW222 22" Casse: Creative 5.1 S.O.: Windows 7 Ultimate 64bit Adsl (Down/Up): Fastweb 7Mbit / 512Kb Multimedia HDD: Iomega ScreenPlay Director HD 1Tb
J0k3r91 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 17:27   #10
J0k3r91
Member
 
Iscritto dal: Apr 2008
Messaggi: 101
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Allora assicurati di eseguire l'AcceptChanges() sul DataSet ( o DataTable ) interessato, e poi esegui l'Update :
http://msdn.microsoft.com/it-it/libr...3x(VS.80).aspx

Il fatto che dichiari nel tuo post iniziale che il codice C# gira senza errori, ma a DB "non fa niente", mi fa pensare ad una dimenticanza di questo genere...
Ho aggiunto l'AcceptChanges() e infine l'Update() al programma, perchè precedentemente non le avevo messe.. continua comunque a non fare un bel niente!

Non so dove andare a parare..
__________________
CPU: Intel Core 2 Quad [email protected] cooled by Cooler Master Gemini II (413x8, FSB@1652Mhz, 1.44v) MB: Gigabyte GA-P45-UD3LR Ram: 4GB DDR2@826Mhz (5-7-7-20) Sk Video: XFX8800GT A.D. Edition XXX (GPU: 670Mhz, MEM: 1950Mhz, GDDR3 512Mb) HDD: 2xMaxtor DiamondMax 160GB 8Mb 7200rpm + Seagate 1Tb Alimentatore: Corsair TX650W Schermo: LCD ASUS VW222 22" Casse: Creative 5.1 S.O.: Windows 7 Ultimate 64bit Adsl (Down/Up): Fastweb 7Mbit / 512Kb Multimedia HDD: Iomega ScreenPlay Director HD 1Tb
J0k3r91 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 22:36   #11
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
E ri-quoto. Certo, per chi ha uno strano concetto di "divertimento"...
Personalmente ritengo i Dataset qualcosa di morto con VS2003.
Generics prima e Linq poi li hanno resi decisamente superati come tecnica di programmazione.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 22:48   #12
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Personalmente ritengo i Dataset qualcosa di morto con VS2003.
Generics prima e Linq poi li hanno resi decisamente superati come tecnica di programmazione.
Quoto.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 22:58   #13
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Personalmente ritengo i Dataset qualcosa di morto con VS2003.
Generics prima e Linq poi li hanno resi decisamente superati come tecnica di programmazione.
Bah, mi sembra un po' "fortina" come affermazione.
Chi ha imparato a sfruttare le potenzialità dei DataSet penso non sia molto d'accordo.
Sarà che io resto sempre scettico, e abbastanza "divertito" di fronte ad affermazioni come queste, se si rimane nel contesto italiano, dove vai ad un corso e senti il docente di turno dire "...è una tecnica di sviluppo ormai superata e... blah blah blah...", poi vai a fare un colloquio in una signora azienda, almeno sulla carta, e ti senti dire che hanno bisogno di un tizio che faccia classi in Java o .NET, che devono processare "tracciati record" in formato testo, che escono dal gestionale, al quale ovviamente nessuno vuole mettere mano, e che è scritto... in Cobol.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 23:06   #14
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
I Dataset saranno effettivamente funzionali e produttivi soprattutto per programmatori poco esperti, ma di certo non sono il miglior esempio( soprattutto in ambito di flessibilità, scalabilità e riutilizzo) di programmazione.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2010, 23:23   #15
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da J0k3r91 Guarda i messaggi
Ho aggiunto l'AcceptChanges() e infine l'Update() al programma, perchè precedentemente non le avevo messe.. continua comunque a non fare un bel niente!

Non so dove andare a parare..
Ma l'Update l'hai fatto correttamente come nell'esempio alla pagina Msdn che ti ho linkato ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2010, 00:01   #16
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Bah, mi sembra un po' "fortina" come affermazione.
Chi ha imparato a sfruttare le potenzialità dei DataSet penso non sia molto d'accordo.
Il tempo che perdi a creare un dataset tipizzato con l'editor fornito da VS2005 in poi fa passare ogni voglia di utilizzarli (con Linq poi non se ne parla proprio).
Un Dataset non tipizzato è un incubo da gestire in un applicativo di una certa complessità, non sai mai chi ci ha messo le mani sopra e finchè non arrivi a spulciare la query di lettura e tutta l'elaborazione che c'è stata fatta sopra non sai cosa c'è dentro. Proprio la condizione ideale per qualunque business layer.

Mi sta capitando in questi giorni di mettere mano ad un progetto corposo (spacciato per essere in .NET 3.5) che fa uso esclusivo di Dataset non tipizzati in ogni punto ed è tutto un andare a cercare l'origine del dataset per sapere con cosa è stato valorizzato e successivamente da chi viene elaborato e tutto questo solo per conoscere cosa può esserci dentro quella scatola nera. Ma nessuno mi garantisce che una modifica alla query di partenza o qualche punto a valle non faccia poi schiantare il software in un punto remoto solo perchè non c'è più l'informazione che cercavo, stai sicuro che non riceverai nessun errore in compilazione e probabilmente anche l'Unit Test non ti porrà al riparo dagli errori, dovresti confidare nei test di integrazione (di difficile realizzazione se i punti da testare hanno diversi componenti che li separano).
Metti poi che in un database aziendale leggi con Viste e scrivi con Stored,
che non sono impiegabili nei webservice, a meno di non dare per scontato che il client sia in .NET e che chi sviluppa il client vada a spulciare il sorgente del webservice solo per capire cosa gli è stato ritornato.

Ce n'è abbastanza per relegarli al passato.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2010, 10:56   #17
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da J0k3r91 Guarda i messaggi
Ho aggiunto l'AcceptChanges() e infine l'Update() al programma, perchè precedentemente non le avevo messe.. continua comunque a non fare un bel niente!
Aggiungo un piccolo esempio ( con Access, per Sql basta cambiare i relativi oggetti del provider di dati opportuno e ovviamente la CN... ).
La tabella sul DB è "tblFilm".

> Dichiarazioni :
Codice:
        private OleDbDataAdapter DA = new OleDbDataAdapter(sqlSelect, CN);
        private DataSet DS = new DataSet();
Dove sqlSelect è una semplice "SELECT * FROM tblFilm".
CN è la Connection e DS è un semplice DataSet, quindi inutile scomodare altri oggetti, metodi strani, ecc. per gestire una tabella...

> Fill del DataSet ( viene fatto una volta sola all'avvio dell'applicazione ) e sua rappresentazione su un DataGridView :
Codice:
            DA.Fill(DS);
            DataGridView1.DataSource = DS.Tables[0];
> Aggiungo una nuova Row :
Codice:
            DataRow nuovaRiga = DS.Tables[0].NewRow();
            int nuovoID = Convert.ToInt32(DS.Tables[0].Compute("MAX(ID)", null)) + 1;
            nuovaRiga["ID"] = nuovoID;
            nuovaRiga["TITOLO"] = "Titolo";
            nuovaRiga["ANNO"] = 2010;
            nuovaRiga["GENERE"] = "Genere";
            nuovaRiga["RATING"] = 5;
            nuovaRiga["TRAMA"] = "Trama";
            nuovaRiga["LOCANDINA"] = "Locandina";
            DS.Tables[0].Rows.Add(nuovaRiga);

            if(DS.HasChanges()==true)
            {
                using(OleDbCommandBuilder CB = new OleDbCommandBuilder(DA))
                {
                    DA.UpdateCommand = CB.GetUpdateCommand();
                    DA.InsertCommand = CB.GetInsertCommand();   
                    DA.DeleteCommand = CB.GetDeleteCommand();
                    DA.Update(DS);
                }
            }
            DS.AcceptChanges();
            MessageBox.Show("Modifiche Salvate");
- nuovoID lo calcolo al momento dal DS stesso.
- Ovviamente anche qui sostituire con SqlCommandBuilder ecc...

Perciò, come già detto, niente di trascendentale.
Non so se la complessità della tua impostazione ( definizione di oggetti e metodi vari... ) faccia parte dell'esercizio.
Se l'unico requisito è "usate un DataSet", qui hai forse l'esempio più immediato che ti si possa fornire.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
La NASA porta le batterie allo stato sol...
Finto mining di criptovalute: 200 vittim...
AI sul PC senza passare dal cloud, come ...
ASUS aggiorna la sua gamma di monitor da...
Android potrà spegnere e riavviare il PC...
Quale capienza di micro SD è la p...
TSMC valuta il Texas per nuove fab, trat...
YouTube Music introduce nuove etichette ...
Questa foto non è intelligenza artificia...
AliExpress lancia Elite: sconti del 5% e...
007 First Light arriva su Nintendo Switc...
ServiceNow vuole mettere ordine nel caos...
Bending Spoons taglia una larga parte de...
Apple vale oltre 5.000 miliardi, ma il p...
OpenAI contro Apple: nuove accuse sui se...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v