<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-657395817132013002</atom:id><lastBuildDate>Mon, 27 Jun 2022 06:14:31 +0000</lastBuildDate><category>Programming</category><category>Wpf</category><category>C#</category><category>SQL</category><category>Backgroundworker</category><category>Bitmap</category><category>Bitmapimage</category><category>Comparison</category><category>FileSystemWatcher</category><category>Function</category><category>Google</category><category>Inline</category><category>Software</category><category>Splash screen</category><category>Stored procedure</category><category>VB.Net</category><category>Wave</category><category>Xpath</category><category>thread</category><title>Plain column</title><description>All about programming and software</description><link>http://plaincolumn.blogspot.com/</link><managingEditor>noreply@blogger.com (Hamitai)</managingEditor><generator>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-7620557816414548426</guid><pubDate>Tue, 27 Jul 2010 15:07:00 +0000</pubDate><atom:updated>2010-07-27T23:07:52.327+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Inline</category><category domain="http://www.blogger.com/atom/ns#">Wpf</category><title>Inline function within XAML</title><description>&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:small;&quot;&gt;Most of the time, the event in XAML is assigned to a codebehind function&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:small;&quot;&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:small; color: blue; font-style:italic;&quot;&gt;*.xaml&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:medium;&quot;&gt;&lt;code&gt;&amp;lt;button click=&quot;OnBtnClicked&quot; content=&quot;Click Me&quot; height=&quot;30&quot; name=&quot;btn&quot; width=&quot;80&quot;&amp;gt;&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:small; color: blue; font-style:italic;&quot;&gt;*.cs&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:medium;&quot;&gt;&lt;code&gt;void OnBtnClicked(object sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;btn.Content = &quot;Thank you&quot;;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&#39;Trebuchet MS&#39;; font-size:small;&quot;&gt;Another way is to use inline code in the XAML file by using &lt;span style=&quot;font-size:medium;&quot;&gt;&lt;code&gt;&amp;lt;x:code&amp;gt;&lt;/code&gt;&lt;/span&gt; element.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:medium;&quot;&gt;&lt;code&gt;&amp;lt;button click=&quot;OnBtnClicked&quot; content=&quot;Click Me&quot; height=&quot;30&quot; name=&quot;btn&quot; width=&quot;80&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;x:code&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void OnBtnClicked(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btn.Content = &quot;Thank you&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/x:code&amp;gt;&lt;br /&gt;&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://plaincolumn.blogspot.com/2010/07/inline-function-within-xaml.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-6733242780561462311</guid><pubDate>Sat, 17 Jul 2010 16:19:00 +0000</pubDate><atom:updated>2010-07-27T22:03:30.608+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Comparison</category><category domain="http://www.blogger.com/atom/ns#">VB.Net</category><title>Comparison for C# and VB.Net</title><description>&lt;div style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;table style=&quot;width: 550px;&quot; border=&quot;1&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td style=&quot;width: 145px;&quot;&gt;C#&lt;/td&gt;&lt;td style=&quot;width: 145px;&quot;&gt;VB.Net&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Case sensitive&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Self reference to current object&lt;/td&gt;&lt;td&gt;this&lt;/td&gt;&lt;td&gt;me&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No explicit instance of object needed&lt;/td&gt;&lt;td&gt;static&lt;/td&gt;&lt;td&gt;Shared&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Refer to base class&lt;/td&gt;&lt;td&gt;base&lt;/td&gt;&lt;td&gt;MyBase&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare class that can&#39;t be inherited&lt;/td&gt;&lt;td&gt;sealed&lt;/td&gt;&lt;td&gt;NotInheritable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare method that can&#39;t be overridden&lt;/td&gt;&lt;td&gt;sealed&lt;/td&gt;&lt;td&gt;NotOverridable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare method that can be override in derived class&lt;/td&gt;&lt;td&gt;virtual&lt;/td&gt;&lt;td&gt;Overridable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare method that must be override in derived class&lt;/td&gt;&lt;td&gt;abstract&lt;/td&gt;&lt;td&gt;MustOverride&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare a class must be inherited. An instance of the class cannot be created&lt;/td&gt;&lt;td&gt;abstract&lt;/td&gt;&lt;td&gt;MustInherit&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comments&lt;/td&gt;&lt;td style=&quot;font-style:italic; font-size:medium;&quot;&gt;&lt;code&gt;/* comment */&lt;br /&gt;//comment&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;font-style:italic; font-size:medium;&quot;&gt;&amp;nbsp;&lt;code&gt;&#39;comment&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Empty object&lt;/td&gt;&lt;td&gt;null&lt;/td&gt;&lt;td&gt;Nothing&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Method that does not return value&lt;/td&gt;&lt;td&gt;void&lt;/td&gt;&lt;td&gt;Sub&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare a variable&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;int a = 0;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Dim a as Integer = 0&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare an array&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;int[] a =new int[3];&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Dim a() As Integer&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declare an enumeration&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;enum&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Enum &lt;br /&gt;...&lt;br /&gt;End Enum&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Iteration loop structure&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;for&lt;br /&gt;foreach&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;For ... Next&lt;br /&gt;For Each ... Next&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Conditional loop structure&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;while&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;While ...  End While&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Conditional statement&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;if ... else ...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;If...Else...End If&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;br /&gt;Operator and data types&lt;br /&gt;&lt;table style=&quot;width: 550px;&quot; border=&quot;1&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td style=&quot;width: 145px;&quot;&gt;C#&lt;/td&gt;&lt;td style=&quot;width: 145px;&quot;&gt;VB.Net&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Equal&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;==&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;=&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Not equal&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;!=&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;&amp;lt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Division&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;\&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modulus&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;%&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Mod&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logical AND&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;And&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logical OR&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;||&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Or&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logical NOT&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;!&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Not&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Integer datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;int&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Integer&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;String datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;string&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;String&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Boolean datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;bool&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;boolean&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Byte datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;byte&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Byte&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Decimal datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;decimal&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Decimal&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Float datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;float&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Single&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Double datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;double&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Double&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Date datatype&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;DateTime&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code style=&quot;font-size:medium;&quot;&gt;Date&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://plaincolumn.blogspot.com/2010/07/comparison-for-c-and-vbnet.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-6189097178932754653</guid><pubDate>Fri, 04 Dec 2009 03:04:00 +0000</pubDate><atom:updated>2009-12-04T11:08:30.590+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FileSystemWatcher</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><title>C# - Monitoring folder and files</title><description>&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If you want to get a notification whenever a folder or any files is changed, .Net Framework provides a class name FileSystemWatcher to ease your coding. It provides an event for any files that is modified, created or deleted.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;FileSystemWatcher fileWatcher = new FileSystemWatcher();&lt;br /&gt;fileWatcher.Path = &quot;C:\Data&quot;;&lt;br /&gt;fileWatcher.Filter = &quot;*.txt&quot;;&lt;br /&gt;fileWatcher.IncludeSubdirectories = false;&lt;br /&gt;fileWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;&lt;br /&gt;fileWatcher.Changed += new FileSystemEventHandler(OnFileChanged);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The &#39;Filter&#39; property is used to set what type of file being monitor. If you want to monitor all file types, just change it to &quot;*.*&quot; or you can specify other file type like &quot;*.jpeg&quot;, &quot;*.wmv&quot; or others. The &#39;IncludeSubdirectories&#39; as the name suggested is set to either include the sub directory in FileSystemWatcher monitoring or ignore it. The &#39;NotifyFilter&#39; is used with Changed event, when the file attribute like last write or file name is change, the Changed event will be invoke. There is also some other event for this class as shown below:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;// When a file is created in the folder&lt;br /&gt;fileWatcher.Created += new FileSystemEventHandler(OnFileModified);&lt;br /&gt;// When a file is deleted from the folder&lt;br /&gt;fileWatcher.Deleted += new FileSystemEventHandler(OnFileModified);&lt;br /&gt;// When a file in the folder is renamed&lt;br /&gt;fileWatcher.Renamed += new FileSystemEventHandler(OnFileModified);&lt;br /&gt;&lt;br /&gt;fileWatcher.EnableRaisingEvents = true;&lt;br /&gt;&lt;br /&gt;private void OnFileModified(object sender, FileSystemEventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (e.ChangeType == WatcherChangeTypes.Created || e.ChangeType == WatcherChangeTypes.Deleted)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;You must set the &#39;EnableRaisingEvents&#39; as true to start the FileSystemWatcher.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://plaincolumn.blogspot.com/2009/12/c-monitoring-folder-and-files.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-8804604476623117670</guid><pubDate>Tue, 01 Dec 2009 10:21:00 +0000</pubDate><atom:updated>2009-12-01T18:27:35.792+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>C# - Simple SQL command</title><description>&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Here are some simple code in C# if you want to select data from your database.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Product&lt;/span&gt;&lt;br /&gt;&lt;table border=&quot;2&quot; style=&quot;width:240px;&quot;&gt;&lt;tr&gt;&lt;td style=&quot;width:60px;&quot;&gt;Id&lt;/td&gt;&lt;td style=&quot;width:90px;&quot;&gt;ProductName&lt;/td&gt;&lt;td style=&quot;width:90px;&quot;&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;DataTable dataTable = new DataTable();&lt;br /&gt;string connStr = &quot;Data Source=MachineName\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True&quot;;&lt;br /&gt;string query = &quot;select Id, ProductName, Description from Product&quot;;&lt;br /&gt;using (SqlConnection conn = new SqlConnection(connStr))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlDataAdapter da = new SqlDataAdapter(query, conn);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.Fill(dataTable);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;foreach (DataRow row in dataTable.Rows)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(row[&quot;Id&quot;].ToString(), row[&quot;ProductName&quot;].ToString(), row[&quot;Description&quot;].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Data Source is the name of the database server. Initial Catalog is the database name. If you set the Integrated Security to true, it will used the Windows account of the current process to login to the server. In case the user id and password is different from the windows account, use this&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;string connStr = &quot;Data Source=MachineName\SQLEXPRESS;Initial Catalog=DatabaseName;User ID=username;Password=yourPassword&quot;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;You can also use SqlCommand to read data from the database. For other SQL command like insert, delete and update, I&#39;m not sure if there is other way beside using SqlCommand.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;using (SqlConnection conn = new SqlConnection(connStr))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlCommand dataCommand = new SqlCommand();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataCommand.Connection = conn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataCommand.CommandText = &quot;update Product set ProductName=&#39;NewProductName&#39; where Id=&#39;30&#39;&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int x = dataCommand.ExecuteNonQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.Close();&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;</description><link>http://plaincolumn.blogspot.com/2009/12/c-simple-sql-query.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-4130994261870824291</guid><pubDate>Thu, 26 Nov 2009 10:43:00 +0000</pubDate><atom:updated>2009-11-26T18:47:28.374+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Google</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">Wave</category><title>Google Wave invite</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;&quot;&gt;If you are looking for a Google Wave invite, just leave a thank you and your e-mail. I will sent it to you. Current invitation left 13 and after it is send, the invitation might take 1 or 2 days to reach you.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_2p8kUBUtm-4/Sw5bqtxRgsI/AAAAAAAAACc/-jl5x0FlMR0/s400/wave_invite.JPG&quot; /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/google-wave-invite.html</link><author>noreply@blogger.com (Hamitai)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_2p8kUBUtm-4/Sw5bqtxRgsI/AAAAAAAAACc/-jl5x0FlMR0/s72-c/wave_invite.JPG" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-7354753241897265676</guid><pubDate>Thu, 26 Nov 2009 02:34:00 +0000</pubDate><atom:updated>2009-11-26T10:36:02.814+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Backgroundworker</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">thread</category><title>C# - Background Thread</title><description>&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;There is a time where you need to implement a task on another thread to prevent freezing your UI, update your UI when the task is done. For that, you can use BackgroundWorker that is provided in the .Net Framework.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;BackgroundWorker bgw = new BackgroundWorker();&lt;br /&gt;bgw.DoWork += new DoWorkEventHandler(BgwDoWork);&lt;br /&gt;bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BgwRunWorkerCompleted);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DoWork event is invoked when this backgroundworker is called while RunWorkerCompleted is invoked when backgroundworker completed the task. All long running and intensive task is implemented in the BgwDoWork function and BgwRunWorkerCompleted function is used to update the main thread or UI. When you wan to start the thread, just called the RunWorkerAsync.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;bgw.RunWorkerAsync(); // or&lt;br /&gt;bgw.RunWorkerAsysnc(someobject); //if you need to pass parameter&lt;br /&gt;&lt;br /&gt;private void BgwDoWork(object sender, DoWorkEventArgs e) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; SomeObject test = e.parameter as SomeObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // perform some task&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Result = result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void BgwRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; SomeObject2 test2 = e.Result as SomeObject2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Update main thread or UI&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Trebuchet MS,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;e.Result in BgwDoWork is used to pass object between backgroundworker thread to main thread. If you pass a parameter when calling the RunWorkerAsync, you can get this with e.parameter. You can also report the progress of your running task but you need to set WorkerReportsProgress to true when you declare the backgroundworker variable.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Courier New;font-size: small;&quot;&gt;&lt;br /&gt;bgw.WorkerReportsProgress = true;&lt;br /&gt;bgw.ProgressChanged += new ProgressChangedEventHandler(BgwProgressChanged);&lt;br /&gt;&lt;br /&gt;private void BgwDoWork(object sender, DoWorkEventArgs e) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BackgroundWorker bgWorker = (BackgroundWorker)sender;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // perform some task&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bgWorker.ReportProgress(someobject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void BgwProgressChanged(object sender, ProgressChangedEventArgs e) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update progress bar or any UI&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/c-background-thread.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-700360280135209306</guid><pubDate>Tue, 24 Nov 2009 09:06:00 +0000</pubDate><atom:updated>2009-11-24T17:06:39.666+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Function</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><category domain="http://www.blogger.com/atom/ns#">Stored procedure</category><title>Differences between function and stored procedure in SQL</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Before you decide in using function or stored procedure, you must know that a function cannot used SQL statement like INSERT, UPDATE and DELETE while a stored procedure can. A function also does not support error handling but a stored procedure support error handling (you must include the error handling). Below are more on differences between both:&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Function can be used in a select statement but a stored procedure can&#39;t.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Functions are mostly used for computations while Stored Procedures are used for business logic.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Function must return a value while Stored Procedure are optional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Function accept only input parameters while Stored Procedures can accept input and output parameters.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;GETDATE() or other non-deterministic functions is not allow in Function but are allow in Stored Procedures.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;StoredProcedure can use Temporary Tables while Function can&#39;t.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Function can not Execute Dynamic SQL while a Stored Procedure can.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/differences-between-function-and-stored.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-6746414721354504429</guid><pubDate>Wed, 18 Nov 2009 08:23:00 +0000</pubDate><atom:updated>2009-11-25T17:31:19.012+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Wpf</category><title>WPF - Resources</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms; font-size: small;&quot;&gt;When you create a WPF application, there is a time when you need to add resources to your application such as image, text file, xml file and etc. When you specify the source for this resources, you can either point it to the absolute path or relative path. Absolute path is the exact location while relative path is the location depending on your current working directory.&lt;br /&gt;&lt;br /&gt;For example,&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border=&quot;2&quot; style=&quot;width: 350px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Current working directory - C:\Projects\MyApplication&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Absolute path - C:\Projects\MyApplication\Resources&lt;br /&gt;Relative path - .\Resources&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Absolute path - C:\Projects\MyApplication2\Resources&lt;br /&gt;Relative path - ..\MyApplication2\Resources&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;font-family: trebuchet ms; font-size: small;&quot;&gt;&lt;br /&gt;When your application is using a resource, you can either point it to the path or embed the resource inside your application. For example, you wan to show an image in your application with directly pointing to the sources&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New; font-size: 100%;&quot;&gt;&amp;lt;image Source=&quot;C:\Projects\MyApplication\Resources\blank.jpeg&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or embedding the image inside your application&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New; font-size: 100%;&quot;&gt;&amp;lt;image Source=&quot;/MyApplication;component/blank.jpeg&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 90%;&quot;&gt;Source format: &quot;/&lt;span style=&quot;color: red; font-style: italic;&quot;&gt;project name&lt;/span&gt;;component/&lt;span style=&quot;color: red; font-style: italic;&quot;&gt;image-relative-path&lt;/span&gt;&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Note:&lt;/span&gt; To embed the image, in solution explorer, right click on the project node and click add existing item, browse to the image you want and add. Right click on this image file and select property, make sure the build action is set to resource.&lt;br /&gt;&lt;br /&gt;The image can also be added to the properties.resources at the solution explorer, but you will need to convert it to &lt;span style=&quot;font-size: small; font-style: italic;&quot;&gt;BitmapImage&lt;/span&gt; as the image is saved as &lt;span style=&quot;font-size: small; font-style: italic;&quot;&gt;Bitmap&lt;/span&gt;. You can also add string as normal variable and others file type to properties.resources. To access it later in c# code-behind, you just call&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New; font-size: 100%;&quot;&gt;string str = Properties.Resources.&lt;span style=&quot;color: red;&quot;&gt;string-name-you-put&lt;/span&gt;;&lt;br /&gt;Bitmap bmp = Properties.Resources.&lt;span style=&quot;color: red;&quot;&gt;bitmap-name-you-put&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/wpf-resources.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-4503074116260963824</guid><pubDate>Fri, 13 Nov 2009 17:17:00 +0000</pubDate><atom:updated>2009-11-25T17:18:16.791+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Splash screen</category><category domain="http://www.blogger.com/atom/ns#">Wpf</category><title>WPF - Splash screen with status update</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms; font-size: 120%;&quot;&gt;When your WPF application start up, there are times when it need to load some data or doing some long running task before your application window is fully loaded. So, splash screen is added to make it feel more responsive, but it is still not enough, some application may take a few task to run before loading the window. Most user will feel the application is hanging on splash screen and won&#39;t loads. So i thought adding a status update to the splash screen. Each completed task will update this status label.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms; font-size: 120%;&quot;&gt;&lt;br /&gt;This splash screen is actually a window control with &lt;span style=&quot;font-style: italic;&quot;&gt;windowstyle&lt;/span&gt; set to none and other properties set. You can add your splash image inside and set splash screen resolution to be the same with the image resolution. I posted the solution &lt;a href=&quot;http://sites.google.com/site/blursyntax/Home/SplashScreenWithStatus.zip&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To show the splash screen, you need to fire the event on &lt;span style=&quot;font-style: italic;&quot;&gt;startup&lt;/span&gt;. Then call &lt;span style=&quot;font-style: italic;&quot;&gt;Splash.BeginDisplay();.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New; font-size: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;App.xaml&lt;/span&gt;&lt;br /&gt;&amp;lt;Application x:Class=&quot;SplashScreenWithStatus.App&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StartupUri=&quot;Window1.xaml&quot; Startup=&quot;Application_Startup&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Application.Resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Application.Resources&amp;gt;&lt;br /&gt;&amp;lt;/Application&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New; font-size: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;App.xaml.cs&lt;/span&gt;&lt;br /&gt;private void Application_Startup(object sender, StartupEventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Splash.BeginDisplay();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: trebuchet ms; font-size: 120%;&quot;&gt;&lt;br /&gt;Then you need to call &lt;span style=&quot;font-style: italic;&quot;&gt;Splash.EndDisplay();&lt;/span&gt; after you application&#39;s main window is loaded. I added Thread.Sleep(..); to simulate a long running task and update the status label accordingly when initializing component.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/wpf-splash-screen-with-status-update.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-246152326815823164</guid><pubDate>Fri, 13 Nov 2009 16:24:00 +0000</pubDate><atom:updated>2009-11-14T01:09:48.473+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Xpath</category><title>XPath Tutorial</title><description>&lt;span style=&quot;font-family:verdana ms;font-size:120%;&quot;&gt;&amp;lt;Peoples&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;People&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name Age=&quot;26&quot; Gender=&quot;M&quot;&amp;gt;John&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Status&amp;gt;Single&amp;lt;/Status&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Occupation&amp;gt;Accountant&amp;lt;/Occupation&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/People&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;People&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name Age=&quot;31&quot; Gender=&quot;M&quot;&amp;gt;David&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Status&amp;gt;Married&amp;lt;/Status&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Occupation&amp;gt;Engineer&amp;lt;/Occupation&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name Gender=&quot;M&quot;&amp;gt;Ryan&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name Age=&quot;5&quot; Gender=&quot;F&quot;&amp;gt;Peggy&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/People&amp;gt;&lt;br /&gt;&amp;lt;/Peoples&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:trebuchet ms;font-size:115%;padding:20px;&quot;&gt;&lt;table border=&quot;2&quot; style=&quot;width:500px;&quot;&gt;&lt;col style=&quot;width:200px;&quot;/&gt;&lt;col style=&quot;width:300px;&quot;/&gt;&lt;tr&gt;&lt;td&gt;Root &lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/Peoples&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/Peoples/People/Name&lt;/span&gt; or &lt;span style=&quot;color:red;&quot;&gt;//People/Name&lt;/span&gt;&lt;br /&gt;(John, David)&lt;br /&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name&lt;/span&gt; or &lt;span style=&quot;color:red;&quot;&gt;//*[name()=&#39;Name&#39;]&lt;/span&gt;&lt;br /&gt;(John, David, Ryan, Peggy)&lt;br /&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/Children/Name&lt;/span&gt; or &lt;span style=&quot;color:red;&quot;&gt;//Children/Name&lt;/span&gt;&lt;br /&gt;(Ryan, Peggy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/Peoples/People/Status&lt;/span&gt;&lt;br /&gt;or &lt;span style=&quot;color:red;&quot;&gt;//Status&lt;/span&gt;&lt;br /&gt;or &lt;span style=&quot;color:red;&quot;&gt;//*[name()=&#39;Status&#39;]&lt;/span&gt;&lt;br /&gt;(Single, Married)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Descendent of people&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/descendant::*&lt;/span&gt;&lt;br /&gt;(John&lt;br /&gt;Single&lt;br /&gt;Accountant&lt;br /&gt;&lt;br /&gt;David&lt;br /&gt;Married&lt;br /&gt;Engineer&lt;br /&gt;Ryan&lt;br /&gt;Peggy)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;table border=&quot;2&quot; style=&quot;width:500px;&quot;&gt;&lt;col style=&quot;width:200px;&quot;/&gt;&lt;col style=&quot;width:300px;&quot;/&gt;&lt;tr&gt;&lt;td&gt;All Element&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name with 3 ancestor&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/*/*/*/Name&lt;/span&gt; (Ryan, Peggy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name with 2 ancestor&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;/*/*/Name&lt;/span&gt; (John, David)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;First //People/Status&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/Status[1]&lt;/span&gt; (Single)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;First //Children/Name&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/Children/Name[1]&lt;/span&gt; (Ryan)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Second //People/Name&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/Name[2]&lt;/span&gt; (David)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Last //People/Status&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//People/Status[last()]&lt;/span&gt; (Married)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Age attribute&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//@Age&lt;/span&gt; (26,31,5)&lt;br /&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name[@Age]&lt;/span&gt; (John, David, Peggy)&lt;br /&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name[@Age=&#39;31&#39;]&lt;/span&gt; (David)&lt;br /&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name[@Gender=&#39;M&#39;]&lt;/span&gt; (John,David)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;All attribute&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//@*&lt;/span&gt; (26 M,31 M,M,5 F)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No Age attribute&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name[not(@Age)]&lt;/span&gt; (Ryan)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Element with 3 descendent&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//*[count(*)=3]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana ms;font-size:90%;&quot;&gt;&amp;lt;People&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name Age=&quot;26&quot; Gender=&quot;M&quot;&amp;gt;John&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Status&amp;gt;Single&amp;lt;/Status&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Occupation&amp;gt;Accountant&amp;lt;/Occupation&amp;gt;&lt;br /&gt;&amp;lt;/People&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Name and Status&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name | //Status&lt;/span&gt;&lt;br /&gt;(John Single, David Married, Ryan, Peggy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Select ancestors&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//Children/ancestor::*&lt;/span&gt;&lt;br /&gt;People &amp; Peoples&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Following sibling&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//Name/following-sibling::*&lt;/span&gt;&lt;br /&gt;Status &amp; Occupation &amp; Children&lt;br /&gt;(Single Accountant,Married Engineer Ryan Peggy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Preceding sibling&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color:red;&quot;&gt;//Occupation/preceding-sibling::*&lt;/span&gt;&lt;br /&gt;Name &amp; Status&lt;br /&gt;(John Single, David Married)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/xpath-tutorial.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-657395817132013002.post-1836074100507956731</guid><pubDate>Fri, 13 Nov 2009 15:55:00 +0000</pubDate><atom:updated>2009-11-25T17:37:11.848+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Bitmap</category><category domain="http://www.blogger.com/atom/ns#">Bitmapimage</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Wpf</category><title>WPF - BitmapImage</title><description>&lt;span style=&quot;;font-family:trebuchet ms;font-size:120%;&quot;&gt;Converting &lt;span style=&quot;font-style:italic;&quot;&gt;Bitmap&lt;/span&gt; to &lt;span style=&quot;font-style:italic;&quot;&gt;BitmapImage&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Courier New;font-size:100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;code&lt;/span&gt;&lt;br /&gt;Bitmap bmp = GetBitmap(); // Get bitmap from somewhere&lt;br /&gt;BitmapImage bi = new BitmapImage();&lt;br /&gt;MemoryStream ms = new MemoryStream();&lt;br /&gt;bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);&lt;br /&gt;bi.BeginInit();&lt;br /&gt;ms.Seek(0, SeekOrigin.Begin);&lt;br /&gt;&lt;br /&gt;bi.CacheOption = BitmapCacheOption.OnLoad;&lt;br /&gt;bi.StreamSource = ms;&lt;br /&gt;bi.DecodePixelHeight = 30;&lt;br /&gt;bi.DecodePixelWidth = 50;&lt;br /&gt;bi.EndInit();&lt;br /&gt;bi.StreamSource.Dispose();&lt;br /&gt;&lt;br /&gt;// Dispose and free resources.&lt;br /&gt;bmp.Dispose();&lt;br /&gt;bmp = null;&lt;br /&gt;ms.Dispose();&lt;br /&gt;ms = null;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:trebuchet ms;font-size:120%;&quot;&gt;Converting &lt;span style=&quot;font-style:italic;&quot;&gt;Byte[]&lt;/span&gt; to &lt;span style=&quot;font-style:italic;&quot;&gt;BitmapImage&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Courier New;font-size:100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;code&lt;/span&gt;&lt;br /&gt;Byte[] imageByte = GetImageByte(); // Get byte[] from somewhere&lt;br /&gt;MemoryStream ms = new MemoryStream(imageByte);&lt;br /&gt;ms.Seek(0, SeekOrigin.Begin);&lt;br /&gt;&lt;br /&gt;BitmapImage bi = new BitmapImage();&lt;br /&gt;bi.BeginInit();&lt;br /&gt;bi.CacheOption = BitmapCacheOption.OnLoad;&lt;br /&gt;bi.StreamSource = ms;&lt;br /&gt;bi.EndInit();&lt;br /&gt;bi.Freeze();&lt;br /&gt;&lt;br /&gt;ms.Dispose();&lt;br /&gt;ms = null;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;span style=&quot;;font-family:trebuchet ms;font-size:120%;&quot;&gt;Saving &lt;span style=&quot;font-style:italic;&quot;&gt;BitmapImage&lt;/span&gt; as jpeg file.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Courier New;font-size:100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;code&lt;/span&gt;&lt;br /&gt;BitmapImage bi = GetBitmapImage() // Get bitmapimage from somewhere&lt;br /&gt;using (FileStream stream = new FileStream(&quot;img.jpeg&quot;, FileMode.Create))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JpegBitmapEncoder encoder = new JpegBitmapEncoder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;encoder.Frames.Add(BitmapFrame.Create(bi));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;encoder.Save(stream);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stream.Close();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:trebuchet ms;font-size:120%;&quot;&gt;Converting &lt;span style=&quot;font-style:italic;&quot;&gt;BitmapImage&lt;/span&gt; to &lt;span style=&quot;font-style:italic;&quot;&gt;Byte[]&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Courier New;font-size:100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;code&lt;/span&gt;&lt;br /&gt;BitmapImage bi = GetBitmapImage() // Get bitmapimage from somewhere&lt;br /&gt;Stream stream = bi.StreamSource;&lt;br /&gt;Byte[] imageByte = null;&lt;br /&gt;using (BinaryReader reader = new BinaryReader(stream))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imageByte = reader.ReadBytes((Int32)stream.Length);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:trebuchet ms;font-size:120%;&quot;&gt;Converting &lt;span style=&quot;font-style:italic;&quot;&gt;BitmapImage&lt;/span&gt; to &lt;span style=&quot;font-style:italic;&quot;&gt;Bitmap&lt;/span&gt;. (Seldom use)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Courier New;font-size:100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;code&lt;/span&gt;&lt;br /&gt;BitmapImage bi = GetBitmapImage(); // Get bitmapimage from somewhere&lt;br /&gt;MemoryStream ms = newMemoryStream();&lt;br /&gt;BitmapEncoder encoder = new BitmapEncoder();&lt;br /&gt;encoder.Frames.Add(BitmapFrame.Create(bi));&lt;br /&gt;encoder.Save(ms);&lt;br /&gt;Bitmap bmp = new Bitmap(ms);&lt;/span&gt;&lt;/span&gt;</description><link>http://plaincolumn.blogspot.com/2009/11/wpf-bitmapimage.html</link><author>noreply@blogger.com (Hamitai)</author><thr:total>3</thr:total></item></channel></rss>