marzo 2004 Blog Posts
Un modo per capire se una stringa OleDb si riferisce a SQLServer è quello di controllarne il provider tramite una regular expression:
Public Overloads Shared Function IsSqlConnectionString(ByVal connectionString As String) As Boolean Dim regex As New System.Text.RegularExpressions.Regex("Provider\s*=\s*SQLOLEDB[^;]*;", System.Text.RegularExpressions.RegexOptions.IgnoreCase) Return regex.IsMatch(connectionString)End Function
L'idea è ovviamente esensibile ad altri provider.
Il CommandBuilder è un oggetto che se fosse più flessibile avrebbe sicuramente attratto maggiormente gli sviluppatori, una sua pessima abitudine è quella di invalidare le modifiche fatte ai comandi da lui generati.Per maggior info si veda il seguente:PRB: CommandBuilder Changes Modified Commands Back to Original
Un modo per aggirare il problema può essere quello di clonare il comando generato ed aggiungere la modifica necessaria.
Esempio:
da.InsertCommand = DirectCast(DirectCast(da.InsertCommand, System.ICloneable).Clone, _ System.Data.IDbCommand)da.InsertCommand.CommandText &= "; SELECT SCOPE_IDENTITY() AS ID"da.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
A volte torna utile utilizzare la Data Link per generare le stringhe di connessione:http://www.ugidotnet.org/tips/tips_read.aspx?ID=116La Data Link però ci restituisce una stringa di connessione per OleDb alla quale deve essere rimosso il parametro Provider per essere utilizzata per inizializzare un oggetto SqlConnection.
Un modo può essere quello di utilizzare una regular expression:
Public Shared Function GetSqlConnectionString(ByVal oledbConnectionString As String) As String
Dim regex As New System.Text.RegularExpressions.Regex("Provider=[^;]*;", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Return regex.Replace(oledbConnectionString, String.Empty)
End Function
Oltre al sito indicato da Davide Mauri sulle stringhe di connessione vorrei segnalare anche questo link sempre sullo stesso tema:http://www.able-consulting.com/ADO_Conn.htm
Un modo per associare ad un controllo personalizzato un'icona da visualizzare nella Toolbox è il seguente:1) Creare una bitmap di dimensione 16x16 (il colore del pixel nell'angolo in basso a sinistra rappresenta il colore trasparente)
2) Impostare il nome della bitmap a NomeControllo.bmp o NomeNamespace.NomeControllo.bmp se il controllo risiede all'interno di un Namespace.
3) Impostandone la proprietà Build Action della bitmap a Embedded Resource
4) Impostare il seguente attributo sul controllo: <System.Draving.TollboxBitmap(GetType(NomeControllo))>_ Public Class NomeControllo
Quando in una form si deve gestire una tabella avente 2 o più campi i cui valori sono in relazione con i dati contenuti in un'altra tabella (xes si pensi al caso delle provincie per una semplice anagrafica che ha 2 indirizzi: abitazione e ufficio) viene spontaneo utilizzare due ComboBox bindati sulla DataTable collegata. Così facendo però i valori dei ComboBox risultano sincronizzati in quanto il BindingContext è unico per entrambi e non c'è modo di assegare valori diversi ai due controlli.
La soluzione è quella di creare per il secondo ComboBox un nuovo BindingContext:combobox2.BindingContext = New System.Windows.Forms.BindingContext
Agenda dell'evento:
La sicurezza di un prodotto software non è soltanto data dall’infrastruttura circostante, ma dipende in primo luogo dal codice del programma. I programmatori hanno quindi una grande responsabilità rispetto alla sicurezza di un sistema ma non sempre sanno quali sono le azioni pratiche da compiere per far fronte a questo compito. Durante questo evento scoprirete come affrontare il problema della sicurezza dei vostri applicativi, come proteggervi dagli attacchi più comuni e come utilizzare la sicurezza del .NET Framework per scrivere codice sicuro
http://www.microsoft.com/italy/eventi/msdn/roadshow_sicurezza_Aprile2004.mspx