<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Delivery&#180;s blog &#187; Codice</title>
	<atom:link href="http://blog.gaetanoformisano.com/index.php/category/codice/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gaetanoformisano.com</link>
	<description>Chi muove una montagna inizia col trasportare le piccole pietre...</description>
	<lastBuildDate>Mon, 26 Jul 2010 05:58:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programming the Task Bar in Windows 7 with WPF 4</title>
		<link>http://blog.gaetanoformisano.com/index.php/2010/06/30/programming-the-task-bar-in-windows-7-with-wpf-4/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2010/06/30/programming-the-task-bar-in-windows-7-with-wpf-4/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 10:36:52 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Visual Basic 2010]]></category>
		<category><![CDATA[WPF 4]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/?p=195</guid>
		<description><![CDATA[Interessantissimo articolo scritto da Alessandro Del Sole su come programmare la TaskBar in W7 con WPF.
Qui la prima parte
Qui la seconda
Complimenti Alessandro  
]]></description>
			<content:encoded><![CDATA[<p>Interessantissimo articolo scritto da <a href="http://community.visual-basic.it/Alessandro" target="_blank">Alessandro Del Sole</a> su come programmare la TaskBar in W7 con WPF.<br />
<a href="http://msdn.microsoft.com/en-us/vbasic/ff699128.aspx" target="_blank">Qui</a> la prima parte<br />
<a href="http://msdn.microsoft.com/en-us/vbasic/ff770767.aspx" target="_blank">Qui</a> la seconda</p>
<p>Complimenti Alessandro <img src='http://blog.gaetanoformisano.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2010/06/30/programming-the-task-bar-in-windows-7-with-wpf-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 RTM: prime impressioni e qualche problema</title>
		<link>http://blog.gaetanoformisano.com/index.php/2009/08/09/windows-7-rtm-prime-impressioni/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2009/08/09/windows-7-rtm-prime-impressioni/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 22:55:30 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/index.php/2009/08/09/windows-7-rtm-prime-impressioni/</guid>
		<description><![CDATA[Week-End interamente dedicato all’istallazione di Windows 7 RTM su tutte le workstation e portatili di casa. Come già appurato nelle precedenti versioni beta e la RC Windows 7 è un sistema molto più stabile e molto meno esigente di risorse. Questo si traduce in una maggiore velocità di utilizzo e piacevolezza nello spostarsi tra un’applicazione [...]]]></description>
			<content:encoded><![CDATA[<p>Week-End interamente dedicato all’istallazione di <a href="http://www.microsoft.com/windows/windows-7/default.aspx">Windows 7 RTM</a> su tutte le workstation e portatili di casa. Come già appurato nelle precedenti versioni beta e la RC Windows 7 è un sistema molto più stabile e molto meno esigente di risorse. Questo si traduce in una maggiore velocità di utilizzo e piacevolezza nello spostarsi tra un’applicazione e l’altra.</p>
<p><a rel="lightbox" href="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/windows7.jpg"><img border="0" src="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/windows7_thumb.jpg" alt="windows7" style="display: inline; border: 0px" title="windows7" height="380" width="648" /></a></p>
<p>Fin qui nessun problema tranne quando non mi sono imbattuto in qualche problema abbastanza serio per chi, come me, sviluppa anche applicazioni per Windows Mobile:</p>
<p>Eseguendo Cellular Emulator sul mio portatile (sul quale ho installato il sistema X64) mi vedo venir fuori questo errore:</p>
<p><a rel="lightbox" href="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/image.png"><img border="0" src="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/image_thumb.png" alt="image" style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px" title="image" height="256" width="433" /></a>Girando sul forum MSDN vedo che l’emulatore non è supportato dal sistema operativo in questione!!! ARGHHHHH!!!!!<br />
Bene, dopo la breve incazzatura decido di mettere su la “WINDOWS XP MODE” che permette di virtualizzare Windows XP su Windows 7 in tempi rapidissimi ma nel momento in cui lancio la macchina virtuale:</p>
<p><a rel="lightbox" href="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/image_3.png"><img border="0" src="http://blog.gaetanoformisano.com/images/Windows7RTMprimeimpressioni_AA5/image_thumb_3.png" alt="image" style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px" title="image" height="251" width="436" /></a>il problema è dovuto al fatto che sulla mia macchina non è possibile attivare lato bios la virtualizzazione hardware e Windows Virtual Pc non può farne a meno!!<br />
Risultato: sul mio portatile sarò costretto ad installare Windows 7 32 bit o crearmi una macchina virtuale con  VMWare <img src='http://blog.gaetanoformisano.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2009/08/09/windows-7-rtm-prime-impressioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diagrams on Sql Server 2005</title>
		<link>http://blog.gaetanoformisano.com/index.php/2008/09/17/diagrams-on-sql-server-2005/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2008/09/17/diagrams-on-sql-server-2005/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 15:45:54 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/index.php/2008/09/17/diagrams-on-sql-server-2005/</guid>
		<description><![CDATA[Ad una nuova installazione di Sql Server e quando faccio l&#8217;attach di un DB proveniente da Sql 2000 ho sempre il solito errore nel momento in cui cerco di aprire i diagrammi:
“Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of [...]]]></description>
			<content:encoded><![CDATA[<p>Ad una nuova installazione di Sql Server e quando faccio l&#8217;attach di un DB proveniente da Sql 2000 ho sempre il solito errore nel momento in cui cerco di aprire i diagrammi:<br />
<em>“Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.”</em></p>
<p>Vi posto il codice da eseguire per ovviare a questo fastidioso problema che non viene via nemmeno impostando la compatibilità su Sql 2005 nelle option del DB</p>
<pre><font size="2" face="courier">use [master] </font><font size="2" face="courier">EXEC sp_dbcmptlevel 'TuoDatabase', '90';</font></pre>
<pre><font size="2" face="courier">go</font></pre>
<pre><font size="2" face="courier">ALTER AUTHORIZATION ON DATABASE::TuoDatabase TO tuoLogin</font></pre>
<pre><font size="2" face="courier">go</font></pre>
<pre><font size="2" face="courier">use [TuoDatabase]</font></pre>
<pre><font size="2" face="courier">go</font></pre>
<pre><font size="2" face="courier">EXECUTE AS USER = N'dbo' REVERT</font></pre>
<pre><font size="2" face="courier">go</font></pre>
<pre> </pre>
<pre><font size="2" face="Courier">Spero vi sia utile <img src='http://blog.gaetanoformisano.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </font></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2008/09/17/diagrams-on-sql-server-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encrypting with Rfc2898DeriveBytes</title>
		<link>http://blog.gaetanoformisano.com/index.php/2008/04/29/encrypting-with-rfc2898derivebytes/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2008/04/29/encrypting-with-rfc2898derivebytes/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 20:32:10 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/index.php/2008/04/29/encrypting-with-rfc2898derivebytes/</guid>
		<description><![CDATA[A chi non è mai venuto in testa di crittare i propri dati in maniera abbastanza sicura? A me di certo capita tutti i giorni. Spero che questo breve tutorial possa aiutarvi a realizzare una encription abbastanza potente:
Vi allego la classe pronta all&#8217;utilizzo:
StringsExtensions.zip
Vi basterà importarla nel vostro codice:

ImportsWindowsApplication1.StringExtensions
ed utilizzare i metodi in questo modo:
Dim stringaDaCrittare [...]]]></description>
			<content:encoded><![CDATA[<p>A chi non è mai venuto in testa di crittare i propri dati in maniera abbastanza sicura? A me di certo capita tutti i giorni. Spero che questo breve tutorial possa aiutarvi a realizzare una encription abbastanza potente:</p>
<p>Vi allego la classe pronta all&#8217;utilizzo:</p>
<p style="display: inline; margin: 0px; padding: 0px" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:ef294415-ab48-4900-af04-9a734b0e51ec" class="wlWriterSmartContent"><a target="_self" href="http://blog.gaetanoformisano.com/images/EncryptingwithRfc2898DeriveBytes_13865/StringsExtensions.zip">StringsExtensions.zip</a></p>
<p>Vi basterà importarla nel vostro codice:<br />
<span style="color: blue"><br />
Imports</span>WindowsApplication1.StringExtensions</p>
<p>ed utilizzare i metodi in questo modo:</p>
<pre class="code"><span style="color: blue">Dim </span>stringaDaCrittare = <span style="color: #a31515">"Ciao Gaetano"
</span><span style="color: blue">Dim </span>stringaCrittata <span style="color: blue">As String
</span>stringaCrittata = stringaDaCrittare.Trim.CryptFromString(<span style="color: #a31515">"gaetano"</span>)</pre>
<p>In questo modo abbiamo crittato la nostra stringa &#8220;stringaDaCrittare&#8221; con il metodo Rfc2898DeriveBytes messo a disposizione già dal Framework 2.0. Il metodo &#8220;CryptFromString&#8221; necessita si una password di crittazione assegnata ogni volta dall&#8217;utente (password di crittaggio e decrittaggio devono coincidere ovviamente)</p>
<p><a href="http://11011.net/software/vspaste"></a></p>
<pre class="code"><span style="color: blue">Dim </span>stringaCrittata = <span style="color: #a31515">"A8 B4 C9 F1 A2"
</span><span style="color: blue">Dim </span>stringaDaDecrittare <span style="color: blue">As String
</span>stringaDaDecrittare = stringaCrittata.Trim.DecryptFromString(<span style="color: #a31515">"gaetano"</span>)</pre>
<p>&#8230;qualora voleste decrittare una stringa precedentemente crittata con lo stesso metodo (e password!)</p>
<p>Semplice no?</p>
<p>Riferimenti alla classe &#8220;Rfc2898DeriveBytes&#8221; <a target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx">qui</a><a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2008/04/29/encrypting-with-rfc2898derivebytes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crystal Reports e passaggio di parametri a report e sottoreport</title>
		<link>http://blog.gaetanoformisano.com/index.php/2008/04/23/crystal-reports-e-passaggio-di-parametri-a-report-e-sottoreport/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2008/04/23/crystal-reports-e-passaggio-di-parametri-a-report-e-sottoreport/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 21:31:19 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/?p=122</guid>
		<description><![CDATA[Con il seguente codice avrete la possibilità di gestire l&#8217;autenticazione del report principale e di tutti i sottoreport da esso richiamati, oltre alla possibilità di passare eventuali parametri impostati nel report (nell&#8217;esempio vengono letti da quarystring, ma potrebbero benissimo essere parametri di session&#8230;). Il mio problema era proprio quello di settare i parametri di connessione [...]]]></description>
			<content:encoded><![CDATA[<p>Con il seguente codice avrete la possibilità di gestire l&#8217;autenticazione del report principale e di tutti i sottoreport da esso richiamati, oltre alla possibilità di passare eventuali parametri impostati nel report (nell&#8217;esempio vengono letti da quarystring, ma potrebbero benissimo essere parametri di session&#8230;). Il mio problema era proprio quello di settare i parametri di connessione dei singoli sottoreport. E&#8217; la funzione &#8220;SetDBLogonForSubreports&#8221; che svolge questo compito.</p>
<p>Spero possa esservi di aiuto: (prerequisiti: Visual Studio 2005 e CrystalReports)</p>
<pre class="code"><span style="color: blue">Imports </span>CrystalDecisions.CrystalReports.Engine
<span style="color: blue">Imports </span>CrystalDecisions.Shared
<span style="color: blue">Imports </span>System.IO

<span style="color: blue">Partial Class </span>_Default
    <span style="color: blue">Inherits </span>System.Web.UI.Page
    <span style="color: blue">Private </span>MyReport <span style="color: blue">As </span>ReportDocument
    <span style="color: blue">Private Sub </span>ConfigureCrystalReports()

        <span style="color: green">'carico il report
        </span>MyReport = <span style="color: blue">New </span>ReportDocument()
        <span style="color: blue">Dim </span>reportPath <span style="color: blue">As String </span>= Server.MapPath(<span style="color: #a31515">"TuoReportMaster.rpt"</span>)
        MyReport.Load(reportPath)

        <span style="color: green">'passo i parametri di connessione al report
        </span><span style="color: blue">Dim </span>myConnectionInfo <span style="color: blue">As </span>ConnectionInfo = <span style="color: blue">New </span>ConnectionInfo()

        <span style="color: green">'parametri presenti nel webconfig
        </span>myConnectionInfo.DatabaseName =
        System.Configuration.ConfigurationManager.AppSettings(<span style="color: #a31515">"Database"</span>)
        myConnectionInfo.UserID =
        System.Configuration.ConfigurationManager.AppSettings(<span style="color: #a31515">"UserName"</span>)
        myConnectionInfo.Password =
        System.Configuration.ConfigurationManager.AppSettings(<span style="color: #a31515">"Password"</span>)
        myConnectionInfo.ServerName =
        System.Configuration.ConfigurationManager.AppSettings(<span style="color: #a31515">"Server"</span>)

        <span style="color: green">'autentico il mio report principale
        </span>SetDBLogonForReport(myConnectionInfo, MyReport)

        <span style="color: green">'autentico tutti i sottoreport richiamati dal report principale
        </span>SetDBLogonForSubreports(myConnectionInfo, MyReport)

        <span style="color: green">'passo eventuali parametri al report principale
        </span><span style="color: blue">Dim </span>paramFields <span style="color: blue">As New </span>ParameterFields()
        <span style="color: blue">Dim </span>discreteVal <span style="color: blue">As New </span>ParameterDiscreteValue()
        <span style="color: blue">Dim </span>parametro1 <span style="color: blue">As New </span>ParameterField()
        <span style="color: blue">Dim </span>parametro2 <span style="color: blue">As New </span>ParameterField()

        <span style="color: green">'passo il primo parametro
        </span>parametro1.ParameterFieldName = <span style="color: #a31515">"@Parametro1DelReport"
        </span>discreteVal = <span style="color: blue">New </span>ParameterDiscreteValue()
        discreteVal.Value = Request.QueryString(<span style="color: #a31515">"Parametro1"</span>)
        <span style="color: green">'in questo caso leggo da una querysting
        </span>MyReport.SetParameterValue(<span style="color: #a31515">"@Parametro1DelReport"</span>, discreteVal.Value)

        <span style="color: green">'passo il secondo parametro
        </span>parametro2.ParameterFieldName = <span style="color: #a31515">"@Parametro2DelReport"
        </span>discreteVal = <span style="color: blue">New </span>ParameterDiscreteValue()
        discreteVal.Value = Request.QueryString(<span style="color: #a31515">"Parametro1"</span>)
        <span style="color: green">'secondo parametro anche passato in querysting
        </span>MyReport.SetParameterValue(<span style="color: #a31515">"@Parametro1DelReport"</span>, discreteVal.Value)
    <span style="color: blue">End Sub

    Private Sub </span>SetDBLogonForReport(<span style="color: blue">ByVal </span>myConnectionInfo
                    <span style="color: blue">As </span>ConnectionInfo, <span style="color: blue">ByVal </span>myReportDocument <span style="color: blue">As </span>ReportDocument)
        <span style="color: green">'subroutine che setta i parametri di connessione del report principale
        </span><span style="color: blue">Dim </span>myTables <span style="color: blue">As </span>Tables = myReportDocument.Database.Table
        <span style="color: blue">Dim </span>myTable <span style="color: blue">As </span>CrystalDecisions.CrystalReports.Engine.Table
        <span style="color: blue">For Each </span>myTable <span style="color: blue">In </span>myTables
            <span style="color: blue">Dim </span>myTableLogonInfo <span style="color: blue">As </span>TableLogOnInfo = myTable.LogOnInfo
            myTableLogonInfo.ConnectionInfo = myConnectionInfo
            myTable.ApplyLogOnInfo(myTableLogonInfo)
        <span style="color: blue">Next
    End Sub

    Private Sub </span>SetDBLogonForSubreports(<span style="color: blue">ByVal </span>myConnectionInfo
                    <span style="color: blue">As </span>ConnectionInfo, <span style="color: blue">ByVal </span>myReportDocument <span style="color: blue">As </span>ReportDocument)
        <span style="color: green">'subroutine che setta i parametri di connessione di
        'tutti i sottoreport richiamati dal report principale
        </span><span style="color: blue">Dim </span>mySections <span style="color: blue">As </span>Sections = myReportDocument.ReportDefinition.Sections
        <span style="color: blue">Dim </span>mySection <span style="color: blue">As </span>Section
        <span style="color: blue">For Each </span>mySection <span style="color: blue">In </span>mySections
            <span style="color: blue">Dim </span>myReportObjects <span style="color: blue">As </span>ReportObjects = mySection.ReportObjects
            <span style="color: blue">Dim </span>myReportObject <span style="color: blue">As </span>ReportObject
            <span style="color: blue">For Each </span>myReportObject <span style="color: blue">In </span>myReportObjects
                <span style="color: blue">If </span>myReportObject.Kind = ReportObjectKind.SubreportObject <span style="color: blue">Then
                    Dim </span>mySubreportObject <span style="color: blue">As </span>SubreportObject =
                    <span style="color: blue">CType</span>(myReportObject, SubreportObject)
                    <span style="color: blue">Dim </span>subReportDocument <span style="color: blue">As </span>ReportDocument =
                    mySubreportObject.OpenSubreport mySubreportObject.SubreportName)
                    SetDBLogonForReport(myConnectionInfo, subReportDocument)
                <span style="color: blue">End If
            Next
        Next
    End Sub

    Protected Sub </span>Page_Load(<span style="color: blue">ByVal </span>sender <span style="color: blue">As Object</span>,
                                <span style="color: blue">ByVal </span>e <span style="color: blue">As </span>System.EventArgs) <span style="color: blue">Handles Me</span>.Load

        <span style="color: green">'richiamo i parametri di configurzione
        </span>ConfigureCrystalReports()

        <span style="color: green">'esporto il report in pdf
        </span><span style="color: blue">Dim </span>oStream <span style="color: blue">As New </span>MemoryStream <span style="color: green">' // using System.IO
        </span>oStream = MyReport.ExportToStream
                        (CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
        Response.Clear()
        Response.Buffer = <span style="color: blue">True
        </span>Response.ContentType = <span style="color: #a31515">"application/pdf"
        </span>Response.BinaryWrite(oStream.ToArray())
        Response.End()
    <span style="color: blue">End Sub

End Class</span></pre>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></p>
<p>Se tutto è stato impostato correttamente dovreste vedere il vostro bel pdf saltare fuori <img src='http://blog.gaetanoformisano.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2008/04/23/crystal-reports-e-passaggio-di-parametri-a-report-e-sottoreport/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modificare a Runtime l&#8217;impostazione della connectionString</title>
		<link>http://blog.gaetanoformisano.com/index.php/2008/04/19/modificare-a-runtime-le-impostazione-della-connectionstring/</link>
		<comments>http://blog.gaetanoformisano.com/index.php/2008/04/19/modificare-a-runtime-le-impostazione-della-connectionstring/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 16:30:27 +0000</pubDate>
		<dc:creator>Delivery</dc:creator>
				<category><![CDATA[Codice]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gaetanoformisano.com/?p=120</guid>
		<description><![CDATA[In questi giorni mi sono dedicato interamente allo sviluppo di un&#8217;applicazione client ed avevo l&#8217;esigenza di modificare continuamente da form la connessione al Database (sqlServer). Immaginate quanto sia seccante ogni volta andare nell&#8217; app.config e cambiare ogni volta i parametri. Beh..ecco un trucchetto che potrebbe esservi utile per fare una cosa del genere a Runtime:
Ovviamente [...]]]></description>
			<content:encoded><![CDATA[<p>In questi giorni mi sono dedicato interamente allo sviluppo di un&#8217;applicazione client ed avevo l&#8217;esigenza di modificare continuamente da form la connessione al Database (sqlServer). Immaginate quanto sia seccante ogni volta andare nell&#8217; app.config e cambiare ogni volta i parametri. Beh..ecco un trucchetto che potrebbe esservi utile per fare una cosa del genere a Runtime:</p>
<p>Ovviamente non abbiamo accesso in scrittura all&#8217;app.config quindi la prima cosa da fare è crearci una Property all&#8217;interno del namespace My in questo modo:</p>
<pre class="code"><span style="color: blue">Public WriteOnly Property </span>RunTimeConnectionString() <span style="color: blue">As String
    Set</span>(<span style="color: blue">ByVal </span>value <span style="color: blue">As String</span>)
        <span style="color: blue">My</span>.Settings(<span style="color: #a31515">"MiaConnectionString"</span>) = value
    <span style="color: blue">End Set
End Property</span></pre>
<p><a href="http://11011.net/software/vspaste"></a>Bene..ora nell&#8217;evento MySettings_PropertyChanged (cioè alla modifica delle nostre impostazioni) testiamo la connessione (non è obbligatorio ma facciamolo per evitare che l&#8217;applicazione vada in crash <img src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/tongue_smile.gif" alt="Tongue out" /></p>
<pre class="code"><span style="color: blue">Private Sub </span>MySettings_PropertyChanged(<span style="color: blue">ByVal </span>sender <span style="color: blue">As Object</span>, <span style="color: blue">ByVal </span>e <span style="color: blue">As
	</span><span style="color: blue"> 	</span>System.ComponentModel.PropertyChangedEventArgs) <span style="color: blue">Handles Me</span>.PropertyChanged
    <span style="color: blue">Dim </span>connection <span style="color: blue">As New </span>SqlClient.SqlConnection
    connection.ConnectionString = <span style="color: blue">My</span>.Settings(<span style="color: #a31515">"MiaConnectionString"</span>)
    <span style="color: blue">Try
        </span>connection.Open()
    <span style="color: blue">Catch </span>ex <span style="color: blue">As </span>Exception
        MsgBox(<span style="color: #a31515">"Errore di connessione al Database. Verificare la connessione"</span>,
		MsgBoxStyle.Critical, <span style="color: #a31515">"Connessione"</span>)
    <span style="color: blue">Finally
        </span>connection.Close()
    <span style="color: blue">End Try
End Sub</span></pre>
<p>Ok..ci siamo quasi. Ora creiamoci una bella form dove inserire i dati relativi alla nostra connessione al Database. Creiamo qualcosa di simile:</p>
<p><a href="http://blog.gaetanoformisano.com/images/ModificareaRuntimeleimpostazionedellacon_FCCC/dbsettings.jpg"><img border="0" width="530" src="http://blog.gaetanoformisano.com/images/ModificareaRuntimeleimpostazionedellacon_FCCC/dbsettings_thumb.jpg" alt="dbsettings" height="307" style="border-width: 0px" /></a></p>
<p>Ora non ci resta che salvare le impostazioni relative alla nostra connessione mediante la chiamata alla nostra Property creata in precedenza in questo modo:</p>
<pre class="code"><span style="color: blue">My</span>.Settings.RunTimeConnectionString = <span style="color: #a31515">"Data Source=" </span>&amp; ServerTxt.Text &amp; <span style="color: #a31515">";Initial Catalog=
				" </span>&amp; dbTxt.Text &amp; <span style="color: #a31515">";Persist Security Info=True;
				User ID=" </span>&amp; userTxt.Text &amp; <span style="color: #a31515">"; Password=" </span>&amp; passTxt.Text</pre>
<p>Le informazioni relative nostra conenssione sono state aggiornate!!! <img src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/teeth_smile.gif" alt="Open-mouthed" /></p>
<p><a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gaetanoformisano.com/index.php/2008/04/19/modificare-a-runtime-le-impostazione-della-connectionstring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
