maggio 2007 Blog Posts

Ottenere i files ordinati per data - utilizzo di IComparer e GetFiles

Oggi un post passato in un forum che frequento mi ha incuriosito e allora ho preparato questa soluzione che dimostra come si può realizzare un ordinamento per data ultima modifica dei files presenti in una certa cartella. Il tutto passa attraverso Array.Sort a cui vengono passati come parametri, l'array dei nomi dei file ottenuto con GetFiles, un metodo della classe System.IO, e l'implementazione dell'interfaccia IComparer e del suo metodo Compare. Esempio C#Esempio VB.NET

Gestire le colonne di tipo DataGridViewButtonColumn

Su DataGridView è possibile aggiungere dei "Button" e gestire l'evento click.Per farlo è sufficiente Andare nelle proprietà del DataGridView ed aggiungere una nuova colonna alla collection Columns. Scegliere ovviamente il tipo di colonna come "DataGridViewButtonColumn" La gestione dell'evento click è effettuata dalla collection Cells sottostante, è sufficiente sottoscrivere l'evento "CellContentClick" e applicare la propria implementazione. Esempio:   private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridViewRow riga = DataGridView1.Rows[e.RowIndex]; if (DataGridView1.Columns[e.ColumnIndex].Equals(this.Column1)) ...

Eseguire "Stored" Access con parametri con VB.NET e C#

    Avere una query residente su access è quanto più si avvicina ad una stored procedure. Per il mio gioco ho utilizzato il database di NorthWind cui ho aggiunto una query: PARAMETERS CustomerStart Text ( 255 ), CustomerEnd Text ( 255 );SELECT Customers.*FROM CustomersWHERE (((Customers.CustomerID) BETWEEN[CustomerStart] And [CustomerEnd])); L'apertura avviene nel solito comune modo impostando il CommandType correttoDim cn As New OleDbConnection(strConn)Dim cm As New OleDbCommand()cm.CommandText = "QueryParametriCustomers"cm.CommandType = CommandType.StoredProcedure Si Aggiungono i parametri:Dim prm As New OleDbParameter()prm.DbType = DbType.[String]prm.Value = "b"cm.Parameters.Add(prm) alla fine  si esegue il comando "Fill" del DataAdapter:Dim da As New OleDbDataAdapter(cm)Dim tb As New DataTable("TabQuery")da.Fill(tb)...

Verificare se un file è scrivibile con C# e VB.NET

Fare la verifica se un determinato file è scrivibile è alquanto semplice.E' sufficiente "tentare" di aprire il file in modo esclusivo, l'operazione può avere due risultati: si ottiene una eccezione, il file è già stato aperto in modo esclusivo da altri si riesce ad aprire, in questo modo il file è "leggibile", il test file.CanWrite ci permette di sapere se è anche scrivibile Nel caso il file sia scrivibile non è detto che non sia in uso da altri processi che possono avere aperto il file in modo non esclusivo oppure utilizzano GetTempFileName per modificare il file. ...

Disabilitare il riordino Ascendente / Discendente sul DataGridView

Cliccando sulla header del DataGridView si ottiene il riordino dei dati.Per impedire che venga fatto uno dei metodi è intercettare il click e interrompere l'azione di riordino.Per farlo ho aggiunto un evento MouseMove sul DataGridView C# private void dataGridView1_MouseDown(object sender, MouseEventArgs e) { DataGridView.HitTestInfo ht = dataGridView1.HitTest(e.X, e.Y); if ((ht.Type == DataGridViewHitTestType.ColumnHeader) && (ht.ColumnIndex == 0)) MessageBox.Show("Ordinamento vietato"); } VB.NET Private Sub dataGridView1_MouseDown(ByVal sender As System.Object, ByVal...

Live space - censimento sulle community italiane

Arrivando buon ultimo, vi invito a leggere il post di Vincenzo Cosenza   relativo al  censimento   delle Communities di sviluppatori e tecnici IT legati all'area Microsoft. Nel suo censimento  la nosta Community è risultata al secondo posto, complimenti a Gianluca e a quanti "tengono in piedi" il grande baraccone "corvéable à merci" di Visual Basic T&T

Funzionamenti diversi per campi Code e campi Text su Dynamics Nav

Con un campo di tipo Text l'espressione: campoText := ''; // l'inizializzazione lo genera cosìcampoText += '0001'; Corrisponde con:campoText := campoText + '0001';Orbene con un campo di tipo Code che notoriamente è un alfanumerico che contiene solo i caratteri maiuscoli l'istruzione:campoCode := ''; // l'inizializzazone lo genera cosìcampoCode += '0001'; stranamente non funziona (o meglio il contenuto della variabile campoCode rimane inalterato), invece:campoCode := campoCode + '0001';Funziona perfettamente.Qualcuno sa perchè?

Utilizzo di Path.Combine

Magari scopro l'acqua calda ma .. non mi sembra.Il Framework .net sulla classe Path contiene un metodo che semplifica di molto la costruzione dei nomi di files e di cartelle. Ovviamente Path.Combine(elemento1,elemento2) serve a generare una path aggregando due elementi diversi che di solito sono un percorso ed il nome di un file.Utilizzo:VB.NET Dim myFile As String = Path.Combine("C:\temp","prova.txt")C#string myFile = Path.Combine(@"C:\temp","prova.txt");in entrambi i casi myFile conterrà "C:\temp\prova.txt" Ovviamente ci sono delle limitazioni e dei caratteri non accettati come nome di file o cartella.Si consiglia pertanto di richiamare questo metodo in un blocco di try/catch.

Selezionare un elemento ListBox con il tasto destro del mouse

  Come è noto la selezione degli elementi su ListBox può essere "personalizzata" impostando la proprietà SelectionMode con uno dei valori della lista (enum) "None,One,MultiSimple,MultiExtended".Tralasciando None e One non voglio pensare che non si possa intuire cosa significhino!, gli altri due permettono la selezione multipla degli elementi, la differenza tra i due è che MultiExtended permette la multiselezione (come MultiSimple) anche mediante l'utilizzo dei tasti Ctrl (control) e Shift.Per la nostra piccola dimostrazione ho utilizzato l'impostazione "MultiExtended".Per poter selezionare anche con il click del pulsante destro è necessario identificare l'elemento puntato, ho aggiunto un evento "mousedown" ed il relativo...

Datagrid - Selezione multipla con VB6

L'amico Giorgio in un thread sul forum mi chiedeva maggiori spiegazioni su Datagrid.SelBookmarks.SelBookmarks restituisce l'insieme di bookmarks relativi alle righe selezionate. Ovviamente si possono selezionare le righe tenendo premuto il tasto control oppure "da codice" impostando utilizzando il metodo "Add" di SelBookMarks con un bookmark valido. Esempio:myBookMark = DataGrid1.Bookmark DataGrid1.SelBookmarks.Add (myBookMark) Per ottenere invece tutte le righe selezionate si può utilizzare questo suggerimento tratto da questo progetto: Private Sub DataGrid1_SelChange(Cancel As Integer) Text3 = DataGrid1.SelBookmarks.Count List1.Clear Dim k As Integer Dim rs As adodb.Recordset Set rs = Adodc1.Recordset For k = 0 To DataGrid1.SelBookmarks.Count - 1 ...

Archivio Sportelli Bancari - elenco Abi Cab Aggiornato ad Aprile 2007

L'archivio Sportelli Bancari Abi Cab aggiornato ad Aprile 2007  è disponibile per lo scaricamento.Alcune informazioni sui files:- campi separati da tabulazione hex: 09- righe separate dal terminatore di riga windows hex: 0d0a- intestazione colonne sulla prima rigaIl file TabAbi contiene i dati relativi alle bancheIl file TabAbiCab contiene le informazioni relative agli sportelliNel file TabAbi e TabAbiCab è presente il campo "Aggiornamento" che evidenzia la data di riferimento di validità dei dati.Tutte le righe di TabAbiCab che NON contengono la data più recente sono da considerarsi relative a sportelli non più attivi o assorbiti da altre banche, tali sportelli sono presenti...

Piccola escursione su OleDbParameter e DbNull con C#

Perchè si possano inviare e vengano accettati valori nulli nei parametri che inviamo al database tramite un OleDbCommand è necessario che ci siano alcuni presupposti: Che nel database siano accettati i valori nulli Che nella definizione dei parametri sia impostato IsNullable = true In mancanza il nostro "gioco" non funzionerà.Per fare la prova ho inserito una nuova tabella su un database di access con 5 campi di diverso tipo: intero decimale testo data contatore Il campo contatore è la pk, non accettando nulli non è neanche citato nella prova.L'esempio dimostra come si possono...

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski