<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Snippets</title>
        <link>http://blogs.escde.net/sascha/category/20.aspx</link>
        <description>Snippets</description>
        <language>en-US</language>
        <copyright>Sascha</copyright>
        <managingEditor>frietsch@escde.net</managingEditor>
        <generator>Subtext Version 1.9.3.0</generator>
        <item>
            <title>DataRows zwischen DataTables kopieren</title>
            <link>http://blogs.escde.net/sascha/archive/2007/07/29/86.aspx</link>
            <description>&lt;p&gt;Mit der Copy() Methode lässt sich eine DataTable als Ganzes kopieren, komplett mit Schema und Daten. &lt;/p&gt; &lt;p&gt;Für einzelne DataRows kann man eine Kombination aus der Clone() und ImportRow() Methode verwenden.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; DataTable CopyFourRows(DataTable dt)
{
    &lt;span class="rem"&gt;// mit Clone Methode Tabellenstruktur kopieren&lt;/span&gt;
    &lt;span class="rem"&gt;// Schema, ohne Daten&lt;/span&gt;
    DataTable dt_copy = dt.Clone();

    &lt;span class="rem"&gt;// mit ImportRow Methode die ersten 4 Zeilen kopieren&lt;/span&gt;
    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 4; ++i)
    {
        dt_copy.ImportRow(dt.Rows[i]);
    }

    &lt;span class="kwrd"&gt;return&lt;/span&gt; dt_copy;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;&lt;img src="http://blogs.escde.net/sascha/aggbug/86.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sascha</dc:creator>
            <guid>http://blogs.escde.net/sascha/archive/2007/07/29/86.aspx</guid>
            <pubDate>Sun, 29 Jul 2007 12:12:45 GMT</pubDate>
            <comments>http://blogs.escde.net/sascha/archive/2007/07/29/86.aspx#feedback</comments>
            <slash:comments>20</slash:comments>
            <wfw:commentRss>http://blogs.escde.net/sascha/comments/commentRss/86.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.escde.net/sascha/services/trackbacks/86.aspx</trackback:ping>
        </item>
        <item>
            <title>Bild nach Bytearray nach Bild</title>
            <link>http://blogs.escde.net/sascha/archive/2007/07/29/85.aspx</link>
            <description>&lt;p&gt;Um binäre Dateien, wie etwa Bilder, über einen Webservice zu senden oder empfangen, kann man sie in ein ByteArray konvertieren.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] createByteArray(&lt;span class="kwrd"&gt;string&lt;/span&gt; imageName) 
{
   FileInfo fileInfo = &lt;span class="kwrd"&gt;new&lt;/span&gt; FileInfo(imageName);
   FileStream fileStream = fileInfo.OpenRead();
   &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] byteArray = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[fileStream.Length];        
   &lt;span class="kwrd"&gt;int&lt;/span&gt; bytesRead = fileStream.Read(byteArray, 0, fileStream.Length);
   Console.WriteLine(&lt;span class="str"&gt;"{0} bytes have been read from {1}"&lt;/span&gt;, 
   bytesRead.ToString(), imageName);
   &lt;span class="kwrd"&gt;return&lt;/span&gt; byteArray;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;In die andere Richtung:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; saveAsImage(&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] bytes, &lt;span class="kwrd"&gt;string&lt;/span&gt; imageName) 
{
   MemoryStream memStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream(bytes);
   System.Drawing.Image image = 
   System.Drawing.Image.FromStream(memStream);
   image.Save(imageName);
   Console.WriteLine(&lt;span class="str"&gt;"{0} was created successfully."&lt;/span&gt;, imageName);
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;&lt;img src="http://blogs.escde.net/sascha/aggbug/85.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sascha</dc:creator>
            <guid>http://blogs.escde.net/sascha/archive/2007/07/29/85.aspx</guid>
            <pubDate>Sun, 29 Jul 2007 12:01:57 GMT</pubDate>
            <comments>http://blogs.escde.net/sascha/archive/2007/07/29/85.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.escde.net/sascha/comments/commentRss/85.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.escde.net/sascha/services/trackbacks/85.aspx</trackback:ping>
        </item>
        <item>
            <title>ADO.Net und Excel</title>
            <link>http://blogs.escde.net/sascha/archive/2007/07/05/83.aspx</link>
            <description>&lt;p&gt;Der Zugriff auf Exceldateien unter .Net 2.0 ist dank ADO.Net erstaunlich einfach. Dazu wird der OleDbProvider verwendet.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; connectionString = &lt;span class="str"&gt;@"Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source=D:\Excel\Workbook.xls;Extended Properties="&lt;/span&gt;&lt;span class="str"&gt;"Excel 8.0;HDR=YES;"&lt;/span&gt;&lt;span class="str"&gt;""&lt;/span&gt;;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;Dieser ConnectionString enthält den Speicherort der Datei und gibt an, dass die erste Zeile der Worksheets die Spaltennamen enthält.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D%5B4%5D.png" target="_new" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="209" src="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D_thumb%5B2%5D.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Nachdem die Connection geöffnet ist, verhält sich alles, wie von ADO.Net gewohnt.&lt;br /&gt;Mit Hilfe der GetSchema() Methode lassen sich Informationen zu den vorhandenen Tabellen (gleich Worksheets) und Spalten abrufen.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (OleDbConnection connection = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbConnection(connectionString))
{
    connection.Open();

    DataTable tables = connection.GetSchema(&lt;span class="str"&gt;"Tables"&lt;/span&gt;);
    DataTable columns = connection.GetSchema(&lt;span class="str"&gt;"Columns"&lt;/span&gt;);
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;In den nachfolgenden Screenshots sieht man die jeweilige DataTable mit den Schemainformationen im DataSet-Visualizer des Visual Studio Debuggers. Achtung: Excel hängt für den Tabellenname ein $ an den Namen des Worksheets. Hier: Worksheetname "Studenten" wird zu Tabelle "Studenten$".&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D%5B7%5D.png" target="_new" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="143" src="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D_thumb%5B3%5D.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D%5B10%5D.png" target="_new" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="144" src="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D_thumb%5B4%5D.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Select-Abfragen funktionieren auch mit Parameter und das Ergebnis lässt sich an Steuerelemente binden.&lt;/p&gt;&lt;pre class="csharpcode"&gt;OleDbCommand selectCommand = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbCommand(
    &lt;span class="str"&gt;"SELECT [MatrikelNr], [Vorname], [Nachname] FROM [Studenten$] "&lt;/span&gt; +
    &lt;span class="str"&gt;"WHERE [Nachname] LIKE @Nachname"&lt;/span&gt;, 
    connection);
selectCommand.Parameters.AddWithValue(&lt;span class="str"&gt;"Nachname"&lt;/span&gt;, &lt;span class="str"&gt;"A%"&lt;/span&gt;);

OleDbDataAdapter adapter = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbDataAdapter(selectCommand);

DataTable studenten = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();
adapter.Fill(studenten);

&lt;span class="kwrd"&gt;this&lt;/span&gt;.GridView1.DataSource = studenten;
&lt;span class="kwrd"&gt;this&lt;/span&gt;.GridView1.DataBind();&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;&lt;a href="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D%5B13%5D.png" target="_new" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="139" src="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D_thumb%5B5%5D.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Auch die Insert- und Update-Commands funktionieren wie erwartet:&lt;/p&gt;&lt;pre class="csharpcode"&gt;OleDbCommand insertCommand = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbCommand(
    &lt;span class="str"&gt;"INSERT INTO [Studenten$] ([MatrikelNr], [Vorname], [Nachname]) "&lt;/span&gt; +  
    &lt;span class="str"&gt;"VALUES (@MatrikelNR, @Vorname, @Nachname)"&lt;/span&gt;,
    connection);
insertCommand.Parameters.AddWithValue(&lt;span class="str"&gt;"MatrikelNr"&lt;/span&gt;, &lt;span class="str"&gt;"123459"&lt;/span&gt;);
insertCommand.Parameters.AddWithValue(&lt;span class="str"&gt;"Vorname"&lt;/span&gt;, &lt;span class="str"&gt;"Bert"&lt;/span&gt;);
insertCommand.Parameters.AddWithValue(&lt;span class="str"&gt;"Nachname"&lt;/span&gt;, &lt;span class="str"&gt;"Becker"&lt;/span&gt;);
&lt;span class="kwrd"&gt;int&lt;/span&gt; rowsAffected = insertCommand.ExecuteNonQuery();&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;&lt;a href="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D%5B16%5D.png" target="_new" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="210" src="http://blogs.escde.net/images/blogs_escde_net_86/sascha/WindowsLiveWriter/ADO.NetundExcel_13356/image%7B0%7D_thumb%5B6%5D.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;&lt;img src="http://blogs.escde.net/sascha/aggbug/83.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sascha</dc:creator>
            <guid>http://blogs.escde.net/sascha/archive/2007/07/05/83.aspx</guid>
            <pubDate>Thu, 05 Jul 2007 19:51:49 GMT</pubDate>
            <comments>http://blogs.escde.net/sascha/archive/2007/07/05/83.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.escde.net/sascha/comments/commentRss/83.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.escde.net/sascha/services/trackbacks/83.aspx</trackback:ping>
        </item>
        <item>
            <title>Access Datenbank mit relativem Pfad aus web.config &amp;ouml;ffnen</title>
            <link>http://blogs.escde.net/sascha/archive/2007/07/02/82.aspx</link>
            <description>&lt;p&gt;Das hat mich einige Zeit gekostet: per Code eine OleDbConnection zu einer Access Datenbank zu öffnen, die im ConnectionStrings-Abschnitt der web.config Datei mit einem relativen Pfad konfiguriert ist. &lt;/p&gt; &lt;p&gt;Während das AccessDataSource Control in der DataFile-Eigenschaft eine relative Pfadangabe wie &lt;/p&gt;&lt;pre class="csharpcode"&gt;DataFile=&lt;span class="str"&gt;"~/App_Data/datenbank.mdb" &lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;richtig umzusetzen weiß, funktioniert das  nicht mir einer Connection, die in der web.config konfiguriert ist. Obwohl "DataSource=&amp;lt;absoluter Datenbankpfad&amp;gt;" einwandfrei funktioniert, brachten weder&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;lt;connectionStrings&amp;gt;
    &amp;lt;add name=&lt;span class="str"&gt;"DatenbankConnectionString"&lt;/span&gt; 
        connectionString=&lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;
        DataSource=~App_Data/datenbank.mdb"&lt;/span&gt;
        providerName=&lt;span class="str"&gt;"System.Data.OleDb"&lt;/span&gt;/&amp;gt;
&amp;lt;/connectionStrings&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;noch folgende Variationen des ConnectionStrings den gewünschten Erfolg:&lt;/p&gt;&lt;pre class="csharpcode"&gt;connectionString=&lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;
    Data File=~App_Data/datenbank.mdb"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;connectionString=&lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;
    DataFile=~App_Data/datenbank.mdb"&lt;/span&gt;
&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;Die Lösung:&lt;/p&gt;
&lt;p&gt;"~App_Data/" muss im ConnectionString der web.config Datei durch "|DataDirectory|" ersetzt werden.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;lt;connectionStrings&amp;gt;
  &amp;lt;add name=&lt;span class="str"&gt;"DatenbankConnectionString"&lt;/span&gt; 
    connectionString=&lt;span class="str"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source=|DataDirectory|datenbank.mdb"&lt;/span&gt; 
    providerName=&lt;span class="str"&gt;"System.Data.OleDb"&lt;/span&gt;/&amp;gt;
&amp;lt;/connectionStrings&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;Dann lässt sich eine OleDbConnection im Code mit&lt;/p&gt;&lt;pre class="csharpcode"&gt;OleDbConnection db = &lt;span class="kwrd"&gt;new&lt;/span&gt; OleDbConnection(
    ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;"DatenbankConnectionString"&lt;/span&gt;].ConnectionString);
db.Open();&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt;wie gewünscht öffnen. &lt;/p&gt;
&lt;p&gt;Das gleiche gilt auch für Verbindungen zu SQLExpress-Datenbanken.&lt;/p&gt;&lt;img src="http://blogs.escde.net/sascha/aggbug/82.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sascha</dc:creator>
            <guid>http://blogs.escde.net/sascha/archive/2007/07/02/82.aspx</guid>
            <pubDate>Mon, 02 Jul 2007 21:37:22 GMT</pubDate>
            <comments>http://blogs.escde.net/sascha/archive/2007/07/02/82.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.escde.net/sascha/comments/commentRss/82.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.escde.net/sascha/services/trackbacks/82.aspx</trackback:ping>
        </item>
        <item>
            <title>Color-Objekt aus einem hexadezimalen Farbcode erzeugen</title>
            <link>http://blogs.escde.net/sascha/archive/2007/07/02/81.aspx</link>
            <description>&lt;p&gt;Um ein System.Drawing.Color-Objekt aus einem String mit einem hexadezimalen Farbcode zu erzeugen, muss man den System.Web.UI.WebControls.WebColorConverter verwenden. Ein direktes Erzeugen mit Hilfe des HexCodes im Konstruktor einer neuen Color-Instanz ist nicht möglich.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; hexColor = &lt;span class="str"&gt;"#FF8080"&lt;/span&gt;;
System.Web.UI.WebControls.WebColorConverter converter = 
    &lt;span class="kwrd"&gt;new&lt;/span&gt; WebColorConverter();
System.Drawing.Color color = 
    (System.Drawing.Color)converter.ConvertFrom(hexColor);
e.Cell.BackColor = color;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;&lt;img src="http://blogs.escde.net/sascha/aggbug/81.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Sascha</dc:creator>
            <guid>http://blogs.escde.net/sascha/archive/2007/07/02/81.aspx</guid>
            <pubDate>Mon, 02 Jul 2007 15:34:38 GMT</pubDate>
            <comments>http://blogs.escde.net/sascha/archive/2007/07/02/81.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.escde.net/sascha/comments/commentRss/81.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.escde.net/sascha/services/trackbacks/81.aspx</trackback:ping>
        </item>
    </channel>
</rss>