Visualizzazione post con etichetta Visual Studio. Mostra tutti i post
Visualizzazione post con etichetta Visual Studio. Mostra tutti i post

sabato 19 febbraio 2011

Gestire Oracle Express 10g da Visual Studio Express

Su una mia macchia virtuale ho installato e configurato Oracle Express 10g ed il driver nativo per .net.

Oracle Express si presenta molto ricco di documentazione e con una interfaccia di gestione “web” che a mio parere è facile ed intuitiva, pur non avendo una profonda conoscenza di Oracle (tra le mie velleità c’era anche quella di imparare bene l’utilizzo e ho comprato un manuale che ho solamente sfogliato senza approfondire) sono stato in grado di creare nuove tabelle, e gestire queste da Visual Studio Express.

La tabella che ho generato per la mia prova:

CREATE TABLE  "TABLEPROVA"
   (    "ID" NUMBER,
    "DESCRIZIONE" VARCHAR2(50),
    "VALORE" NUMBER(12,3),
     CONSTRAINT "TABLEPROVA_PK" PRIMARY KEY ("ID") ENABLE
   )
/

CREATE OR REPLACE TRIGGER  "BI_TABLEPROVA"
  before insert on "TABLEPROVA"              
  for each row 
begin  
    select "TABLEPROVA_SEQ".nextval into :NEW.ID from dual;
end;

/
ALTER TRIGGER  "BI_TABLEPROVA" ENABLE
/

(come si vede il campo ID è di tipo numerico con un trigger che incrementa di 1 automaticamente il valore ad ogni inserimento)

Vista l’impossibilità di Visual Studio Express a collegare ed utilizzare il wizard di creazione del dataset tipizzato con origine dati “Oracle”, è noto infatti che express gestisce solo Access, Sql Express, Sql CE sempre in locale.

Visto che non ho il wizard a disposizione (esiste, a dire il vero un’altra possibilità ma non l’ho scartata perchè la sua descrizione porterebbe via parecchio tempo) ho fatto io quello che dovrebbe fare il wizard di generazione del dataset.

Sostanzialmente fa le operazioni:

1) Apre la connessione con il database
2) Genera la definizione del dataset (xsd) prendendo dal database lo schema delle tabelle / campi
3) Predispone il TableMapping per il mapping degli oggetti che dovrà popolare
4) Gestisce la generazione di un “adapter” dedicato per ogni tabella (tableadapter)
5) Popola ciascun DataAdapter con i comandi / connessioni

Tutto a mano ( è meno difficile di quanto si possa pensare, una volta che si è imparato il trucco diventa tutto in discesa):

Sono partito da un progetto vuoto “windows forms”, ho aggiunto a questo (progetto, aggiungi, dataset) che è rappresentato da un file con estensione xsd.

Si apre la gestione del dataset, ho aggiunto una nuova tabella con 3 campi, tabella e campi sono “speculari” rispetto a tabella e campi presenti nel database.

Ho aggiunto un indice primario al datatable generato.

Aggiunto un oggetto di tipo BindingSource, impostato l’origine dati dal mio dataset appena generato.
Aggiunto un oggetto di tipo BindingNavigator, impostato la proprietà “BindingSource” sul BindingNavigator generato per il mio progetto.

Ho aggiunto un DataGridView con origine dati sul BindingSource e tanti campi di tipo textbox quanti campi presenti nella table, impostato su questi il binding (Text) con BindingSource.

Ho aggiunto il riferimento al driver di Oracle.

Passiamo al codice
A livello di modulo:
Imports Oracle.DataAccess.Client

A livello di classe:
Dim da As New OracleDataAdapter("SELECT * FROM tableprova", "Data Source=XP-TEST;User Id=xp-test;Password=xptest;")

Nell’evento Load della form:

Dim cm As New OracleCommandBuilder(da)

da.InsertCommand = cm.GetInsertCommand()
da.DeleteCommand = cm.GetDeleteCommand()
da.UpdateCommand = cm.GetUpdateCommand()
da.Fill(DbProva, "TableProva")

Visto che mancava il comando di aggiornamento del database ho provveduto ad aggiungere un bottone nel bindingnavigator, nel relativo evento click il codice:

BindingSource1.EndEdit()
da.Update(DbProva, "TableProva")



Esempio VB.NET
Esempio C#

venerdì 29 ottobre 2010

Applicare un filtro su DataGridView

Ho fatto questo piccolo esempio su come filtrare nel DataGridView i dati contenuti all'interno di un range di date.

Per la realizzazione dell’esempio ho utilizzato un DataSet a cui ho aggiunto (nel designer) una tabella con 2 campi.

Al DataSet ho collegato un BindingSource, al BindingSource un BindingNavigator e un DataGridView.

Ho popolato la tabella con 100 righe con date tutte diverse.

Ho aggiunto un CheckBox per testare (checked) se filtrare o meno e due DateTimePicker per i limiti da impostare sulle date da filtrare.

La difficoltà maggiore è impostare il filtro con le date convertite in stringa correttamente formattate.

Esempio C#
Esempio VB.NET

domenica 16 maggio 2010

Visual Studio 2010 italiano disponibile per il download

Da oggi (16/5/10) per gli abbonati MSDN è disponibile il download della localizzazione italiana di Visual Studio 2010.

In settimana sarà disponibile il download per tutti gli altri.

Questo l’annuncio ufficiale pubblicato nel blog di MSDN Italia

mercoledì 22 aprile 2009

Gestire la compilazione 32 bit su Visual Express 64 bit

Come Noto, Visual Studio a 64 bit NON è in grado di produrre un eseguibile funzionante con System.Data.OleDb (aprire e gestire un database di access, tanto per intenderci).

La costruzione del nostro progetto di prova è così banale che trovo vergognoso pubblicare un esempio di codice :)

Partiamo da un nuovo progetto facciamo copia/incolla di un database Access sul progetto, configuriamo dataset e dataadapter, posizioniamo e configuriamo un bindingsource, aggiungiamo un bindingnavigator collegato al binding source, aggiungiamo un datagridview collegato al bindingsource.

Aggiungiamo qualche riga sulla tabella di prova, compiliamo ed eseguiamo.. se abbiamo lavorato bene (male) dovrebbe comparire:

“Eccezione first-chance di tipo 'System.InvalidOperationException' in System.Data.dll”

Passiamo a configurare il progetto per la compilazione a 32 bit.

Si passa sulle opzioni di Visual Express.

Impostare su questo “Mostra configurazioni della build avanzate”

Poi si passa al menù “compila” di Visual Express e si sceglie “Gestione configurazione”

Clicchiamo il menu a discesa “Any Cpu” creando una nuova configurazione co x86

Proviamo il progetto FUNZIONA!

venerdì 13 marzo 2009

Esempio di Gestione Access 2007 con password di protezione con C# e VB.NET

Incuriosito da un dibattito in cui mi si diceva che il mio suggerimento non funzionava (Connessione ad Access 2007 da VB.NET e C#) ho voluto provare se avevo preso una cantonata dando informazioni sbagliate.

Di solito quando pubblico sul mio blog qualche cosa, mi assicuro di provare in prima persona (e a volte ancora non è sufficiente) quanto pubblicato.

Questo post non è altro che la presentazione dell’esempio di prova della connessione ad Access 2007.

Ho iniziato facendo un nuovo database da Access 2007 nel formato 2007 (.accdb come estensione)

Poi ho aggiunto una tabella (Tabella1)

ho riaperto il database in uso esclusivo e ho impostato la password di protezione del database.

Salvato il file ho aperto Visual Express 2008 (C# e VB), generato un nuovo progetto Windows Forms e ho provveduto ad aggiungere il database al progetto (copia, incolla).

A questo punto si è attivato il wizard di preparazione del dataset tipizzato e del tableadapter.

Alla mia form ho aggiunto e impostato, BindingSource e BindingNavigator (collegando il BindingNavigator al BindingSource) e successivamente un DataGridView che ho collegato anch’esso con BindingSource

La seconda fase è stata aggiungere una form per far scegliere all’utente il database da utilizzare e scrivere la password (la login è sempre “Admin” quindi ho provveduto a renderla una costante).

Nell’evento “Load” della form ho gestito la chiamata della form Database e autorizzazioni.

Nota: per poter testare “in che modo” si è usciti dalla form consiglio di guardare le proprietà dei bottoni

Dopo la chiusura della form possono avvenire le situazioni:

  1. Si è indicato un nome di un database che non esiste (o si è lasciato vuoto il campo)
  2. Si è immessa una password sbagliata
  3. Non si è usciti con OK

In tutti questi casi è impossibile proseguire e l’applicazione è chiusa, sulla prima riga compare il messaggio specifico.

Se tutto va bene .. invece si vede la form di gestione apparire :)

Nota: il bordo rosso sulle immagini è il “resto” dell’oggetto di clipping presente su Windows 7 su cui ho fatto la prova.

Gli esempi sono stati realizzati con Visual C# Express 2008, Visual Basic Expess 2008 entrambi in lingua inglese.

Esempio sviluppato con C#

Esempio sviluppato con VB.NET

 

Powered with Windows Live Writer

domenica 26 ottobre 2008

Gestire una colonna calcolata nel DataSet

Incuriosito da un post che lamentava l'impossibilità di gestire un campo di tipo testo che doveva evidenziare le righe con una data valida e rimanere vuoto nel caso di data nulla ho realizzato questo piccolo esempio che dimostra come si può gestire il databinding semplicemente aggiungendo una colonna calcolata e la relativa formula.

Non ho fatto altro che definire un campo calcolato all'interno della mia tabella di prova impostando la proprietà Expression della mia colonna con il codice:

iif(isnull(data,#01/01/1800#) = #01/01/1800#,'','Valida')

Il risultato è stato ottenere la gestione del databinding ed avere nello stesso tempo il mio campo calcolato, campo che ovviamente si aggiorna in base ai dati presenti nella riga.

Ora io ho popolato il dataset con un semplice ciclo, ma niente vieta che l'origine dati sia un database.

Progetto di esempio sviluppato per Visual Basic 2008

Non credo però che ci sia bisogno di consultarlo, per una cosa così banale io me ne vergognerei :)

sabato 25 ottobre 2008

Connettere Sql Server da Windows Mobile

La gestione di Sql Server da palmare equipaggiato con Windows Mobile risulta abbastanza agevole se la si fa compiendo i passi giusti.

In via preliminare però è necessario aver gestito

  • Abilitato su Sql Server la connessione "mista"
  • Aggiunto un nuovo utente di Sql Server per  la connessione da pda
  • Avere l'emulatore installato con abilitata la connessione di rete e/o il palmare connesso con Active Sync o con "Gestione dispositivi Mobili"

Si apre Visual Studio 2008 e si sceglie la creazione di un nuovo progetto per Smart Device.

Successivamente il Wizard mostra la finestra per la scelta specifica del tipo di dispositivo che si vuole gestire.

Io su questa ho scelto Windows Mobile 5, ho  un iPaq hw6915 con Windows Mobile 5, se si possiede un palmare con pocket pc 2003 o con altri successivi sistemi operativi si scelga opportunamente in questo momento.

Aggiuingiamo tra i riferimenti del progetto System.Data.SqlClient

Aggiungiamo al progetto un controllo DataGrid e impostiamo la sua proprietà "Dock" a Fill.

Aggiungiamo il gestore dell'evento Form.Load

C#

 private void Form1_Load(object sender, EventArgs e)

 {
     DataTable tableclienti = new DataTable("Clienti"); 
     SqlConnection cn = new SqlConnection("Data Source=192.168.111.2;user id=pda;password=pdapassword;Initial Catalog=Northwind;");
     SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers", cn);
     da.Fill(tableclienti);
     dataGrid1.DataSource = tableclienti;
}

VB.NET

Private Sub Form1_Load(sender As Object, e As EventArgs)
      
Dim tableclienti As New DataTable("Clienti")
       Dim cn As New SqlConnection("Data Source=192.168.111.2;user id=pda;password=pdapassword;Initial Catalog=Northwind;")
       Dim da As New SqlDataAdapter("SELECT * FROM Customers", cn)
       da.Fill(tableclienti)
       dataGrid1.DataSource = tableclienti
End Sub

Da notare:

  1. Utilizzo numero di IP al posto del Nome (non ho voluto rischiare che il DNS non ce la facesse)
  2. Utilizzo della connessione "standard" con login e password
  3. Database Northwind

Si parte!, possiamo mandare in esecuzione il nostro programmino.

Compare l'emulatore: Ricordarsi di abilitare la connessione di rete sull'emulatore

Finalmente compare la nostra form che ci conferma che il nostro programma funziona.

Strano ma vero, funziona!

Alla prossima

Powerered with Window Live Writer

venerdì 22 agosto 2008

Installato Sql Server 2008 e Visual Studio 2008 SP1

Avevo voglia di provare il nuovo Sql Server 2008 così mi sono attrezzato, e ho scaricato Sql Server 2008 Developer dal mio abbonamento MSDN .

Per primo ho fatto una nuova installazione su una macchina virtuale con Windows XP installato, poi verificato che Microsoft Dynamics NAV funzionava con Sql Server 2008 (per chi non lo sapesse Dynamics NAV è la fonte del mio lavoro quindi almeno per me è che funzionasse era ed è un prerequisito irrinunciabile) ho provveduto ad installarlo come upgrade di Sql Server 2005 sul mio portatile con Windows Vista

Installazione Ex-Novo di SQL Server 2005 su nuova macchina virtuale con Windows XP.

Scelto nel setup l'opzione di nuova installazione il processo, circa due ore è andato avanti ed è terminato senza intoppi.
Poi ho installato Dynamics NAV 5 SP1, configurato il -T4616 sui parametri di partenza di Sql Server 2008 e impostato la DLL di Dynamics il tutto ha funzionato quasi al primo colpo.

 

Installazione come upgrade di Sql Server 2005

L'installazione come upgrade è un pò più complessa, infatti partivo da una situazione con già installati (i più importanti):

  1. Visual Studio 2008 Team Edition for Professional Developers
  2. Microsoft Dynamics NAV 4 SP3 (più gli hotfix specifici per Vista)
  3. Sql Server 2005 Developer
  4. Sql Server 2005 Express
  5. Reporting Services
  6. Analysis Services

Ho provveduto in modo preliminare ad installare ed eseguire il programma intitolato "Preparazione aggiornamento a Sql Server 2008" che ha rilevato che andava tutto bene fuorchè la mancanza di Visual Studio 2008 SP1, che ho provveduto immediatamente a scaricare e a installare online.

L'upgrade di Sql Server 2005 è andato molto a rilento, circa 3 ore per l'installazione ma è proseguito e concluso senza intoppi.

Powerered with Window Live Writer

domenica 13 gennaio 2008

Linq - Esempio Walkthrough: Manipulating Data (Visual Basic) (LINQ to SQL)

L'esempio MSDN: Walkthrough: Manipulating Data (Visual Basic) (LINQ to SQL)  contiene 2 errori che ne impediscono il funzionamento.

Dopo aver generato il sorgente "Northwind.Vb" tramite il comando "sqlmetal" se si seguono le istruzioni dell'articolo l'istruzione:

' Add the customer to the Customers table.
db.Customers.Add(newCust)

Va cambiata in:

' Add the customer to the Customers table.
db.Customers.InsertOnSubmit(newCust)

più avanti, l'istruzione che aggiorna il database:

db.SubmitChanges()

Va cambiata in:


db.Customers.Context.SubmitChanges()


Powerered with Window Live Writer

sabato 1 dicembre 2007

Visual Studio Express 2008 - Prime impressioni

Ho scaricato dal mio abbonamento MSDN l'immagine ISO del DVD contenente Visual Studio 2008 Express.
La suite di Visual Studio 2008 Express è composta dai pacchetti:

  • Visual Basic 2008 Epress Edition
  • Visual C# 2008 Express Edition
  • Visual C++ 2008 Express Edition
  • Visual Web Developer 2008 Express Edition
  • Sql Server 2005 Express Edition

 

Visual Studio 2008 Express può essere scaricato qui nelle versioni "Web Install" e "Offline Install", nel primo caso si possono scegliere i pacchetti singolarmente, nel secondo caso è necessario scaricare l'intera suite da masterizzare successivamente in un DVD.

Non esiste ancora la localizzazione italiana, ma ... consiglio di installare sempre e comunque la versione inglese :)).

Ho installato C# Visual Basic e Visual Web Developer

Esiste anche la possibilità di scaricare e installare localmente MSDN LIbrary nelle versioni "Express" (specifica per le versioni Express) oppure anche nella versione "classica" per Visual Studio 2008, la differenza tra l'uno e l'altra è che la versione "Express" è limitata al solo framework .net o quasi mentre la versione completa contiene anche molti altri riferimenti e documentazione come ad esempio le API WIN32, Visual Studio 6 (non più in vendita), ecc.
L'installazione di MSDN Library è consigliata a quanti sono sprovvisti di una connessione veloce, chi è beneficiato da tale fortuna può utilizzare MSDN Library OnLine come fonte primaria di ricerca.
La versione su DVD contiene anche MSDN Library per cui è inutile scaricarla singolarmente, rimane comunque la possibilità di scaricare la versione completa di MSDN Library.
Sono installati anche Sql Server Compact Edition 3.5 ed il runtime di
SilverLight

L'installazione, fatta su una macchina virtuale con Windows XP Sp2 gestita da Virtual PC 2007 è durata circa 30 minuti per l'installazione di C# che ho attivato per prima e circa 10 minuti ciascuno per Visual Basic e Visual Web Developer.

Su XP avevo già presenti Visual C# express 2005 e Visual Basic 2005, ho provato ad aprirli autonomamente ed insieme a C# Express 2008, nessun problema di compatibilità riscontrato.

Rispetto alle connessioni disponibili gestite dal wizard di configurazione del dataset non è cambiato nulla o quasi, a Sql Server 2005 e Access (Access 2007 escluso) è stato aggiunto di Sql Server Compact Edition 3.5, ovviamente tutti e tre i database per essere usati devono risiedere nella macchina che esegue Visual Express.

Ovviamente la mia applicazione con Visual C# Express 2008 è stata quella di generare un nuovo progetto "Windows Presentation Foundation", aggiungere un bottone e un evento, il tutto ovviamente in onore di Kernigan e Ritchie lanciare la mia esortazione, come dovrebbe ogni buon neofita.

 

Mi spiace, i sorgenti del progetto non sono disponibili neanche a pagamento! )).

venerdì 10 agosto 2007

Visual Studio 2008 SDK CTP Agosto 2007

Visual studio 2008 SDK CTP Agosto 2007 è disponibile per il download.

Questa CTP contiene:

  1. Sviluppo di strumenti personalizzati per Visual Studio Shell
  2. Nuovi esempi
  3. Visual Studio Integration Package Wizard ora supporta l'aggiunta di "Test Project" 
  4. Un Help Integration Wizard più funzionale.
  5. Supporto per RANU (Run As Normal User) , non c'è più bisogno di entrare come amministratore, su \VisualStudioIntegration\Tools\DSLTools si può trovare una guida per migrare i progetti generati con versioni precedenti.
  6. Viene adottato il nome ufficiale della release "Visual Studio 2008" al posto del nome di sviluppo "Visual Studio Code Name "Orcas".

lunedì 2 luglio 2007

Visual Studio 2005 SP1

E' uscito il Service Pack 1 per Visual Studio 2005

SP1 aggiorna le versioni Standard Professional e Team Suite (tutte le versioni con esclusione della Express che ha un suo SP separato).
Visual Studio Team Suite SP1 Italiano
Visual Studio Team Suite SP1 Inglese

Da utilizzare esclusivamente per le versioni Express di Visual Studio 2005
Visual Studio 2005 Express Edition SP1 Italiano
Visual Studio 2005 Express Edition SP1 Inglese

Aggiornamento del lato server di Team Fountation.
Visual Studio Team Foundation Server SP1

Visual Studio Sp1 - note sulla versione
Elenco correzioni SP1