Visitatori: 760
In una delle precedenti lezioni abbiamo già visto come utilizzare il server control DetailsView per inserire un record nel database. In particolare abbiamo visto l'inserimento di una News.
In quell'occasione abbiamo agganciato al componente una SqlDataSource collegata alla Tabella News del nostro TestDB, in cui avevamo abilitato le opzioni avanzate di inserimento, modifica e cancellazione che permettono al DataSouce di generare le rispettive query di INSERT, UPDATE E DELETE e i rispettivi SqlComand da agganciare al DataSource.
Con i DataSet l'operazione è molto simile eccetto per il fatto che i suddetti metodi sono già disponibili nel Table Adapter per cui dobbiamo solo configurare il DetailsView in modo corretto.
Aggiungiamo un nuovo controllo wenìb al nostro progetto e denominiamolo "NewsInsertWithDataSet":
Trascinate una label e un DetailsView e poi passate alla configurazione del DataSource:
Scegliamo "Oggetto" come tipo di DataSource in quanto ci consente di gestire il DataSet:
Al punto successivo è necessario selezionare il TableAdapter di interesse. Selezioniamo quello delle News:

A questo punto nella schermata successiva VWD mostra le query impostate per le operazioni di SELECT, INSERT, UPDATE E DELETE. In questo momento ci interssa la query relativa all'operazione di INSERT:

A questo punto cliccate su avanti e quindi su fine. Abilitate l'operazione di inserimento come mostra la figura sotto:

Settate inoltre la proprietà DefaultMode del DetailsView a "Insert":

Eliminate il campo descrizione_categoria in quanto non è un campo fisico della tabella News e non + previsto nei parametri di Insert.
A questo punto salvate il controllo e create una pagina aspx denominata "NewsInsertByDataSet" basata sulla nostra MasterPage e collocate il controllo appena creato nel Content1:

Impostate la pagina come pagina iniziale del progetto e mandatelo in esecuzione per testare l'inserimento:

Provate a inserire dei dati (per adesso impostate 1 in ID_CATEGORIA) come mostra la figura sopra e cliccate su inserisci. A questo punto se apriamo la nostra pagina delle news creata nella scorsa lezione vedremo nell'elenco la nostra news:

Con una semplice modifica al DetailView potete far visualizzare una comboBox per la selezione della Categoria News.
Per fare ciò occorre convertire il campo in Template e modificae l'InsertItemTemplate (come visto nelle precedenti lezioni) eliminado il TextBox e aggiungendo una DropDownList. Fatto ciò è sufficiente configurare l'origine dati della drop down selezionando sempre Oggetto quindi il TableAdapter relativo alle categorie_news e quindi selezionare il campo valore e quello da visualizzare nella drop down.
Occorre inoltre impostare il DataBinding della DropDown selezionando il campo id_categoria.
Apportate queste modifiche mandate nuovamente in esecuzione il progetto e vedrete come sarà adesso possibile selezionare la Categoria News anxichè inserire l'ID:

Nella prossima lezione vedremo come modificare dati tramite DataSet implementando un controllo web per aggiornare una news.
Lezione precedente | Indice degli articoli | Lezione successiva

|