<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;DU8GQHg7cCp7ImA9WhRaFEw.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830</id><updated>2012-02-16T13:43:41.608-05:00</updated><category term="Videos" /><category term=".net" /><category term="Ubuntu/Linux" /><category term="Windows" /><category term="SQL" /><category term="General" /><category term="Java" /><category term="Projects" /><category term="Web" /><title>CSMonkey</title><subtitle type="html">Computer Science Monkey</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/CsmonkeyBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="csmonkeyblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0UDRXk_fSp7ImA9WhRSFE8.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-8408781284306930178</id><published>2011-01-28T11:36:00.000-05:00</published><updated>2011-11-16T01:34:34.745-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T01:34:34.745-05:00</app:edited><title>Richard Dawkins demonstrates laryngeal nerve of the giraffe</title><content type="html">&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/cO1a1Ek-HD0" width="560"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-8408781284306930178?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://www.youtube.com/watch?v=cO1a1Ek-HD0&amp;feature=player_embedded" title="Richard Dawkins demonstrates laryngeal nerve of the giraffe" /><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/8408781284306930178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=8408781284306930178" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/8408781284306930178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/8408781284306930178?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2011/01/richard-dawkins-demonstrates-laryngeal.html" title="Richard Dawkins demonstrates laryngeal nerve of the giraffe" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/cO1a1Ek-HD0/default.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEQCQX85cCp7ImA9WxJaGE8.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-3738206210124997319</id><published>2009-03-31T15:30:00.005-04:00</published><updated>2009-08-09T09:59:20.128-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-09T09:59:20.128-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>How to install Skype on a Canadian iPhone/iPod touch</title><content type="html">- Open iTunes, go to iTunes Store, scroll to the bottom and change "My Store" to USA&lt;br /&gt;&lt;br /&gt;- Get a coupon code from http://www.tunecore.com/freealbum for free&lt;br /&gt;&lt;br /&gt;- Redeem it in the "Quick Links" section of the iTunes Store home page&lt;br /&gt;&lt;br /&gt;- Create a new account and select "None" to skip the credit card information and make up some address in the US&lt;br /&gt;&lt;br /&gt;- Search for Skype, download it and sync your iPhone/iPod touch&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Thanks to JP from http://www.slaw.ca/2009/03/31/no-skype-for-iphone-in-canada/&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Edit:&lt;br /&gt;Thanks to "Anonymous" you can get iTunes code from &lt;a href="http://warpedtour.com/warpedtour/itunes.asp"&gt;http://warpedtour.com/warpedtour/itunes.asp&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-3738206210124997319?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/3738206210124997319/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=3738206210124997319" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3738206210124997319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3738206210124997319?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2009/03/how-to-install-skype-on-canadian.html" title="How to install Skype on a Canadian iPhone/iPod touch" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>16</thr:total></entry><entry gd:etag="W/&quot;Ck4BQns7fyp7ImA9WxVUFUU.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-2808102420917853387</id><published>2009-03-20T16:20:00.004-04:00</published><updated>2009-03-20T16:29:13.507-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-20T16:29:13.507-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>How to duplicate a MySQL database</title><content type="html">Let's say the original database is db1 and the duplicate is db2&lt;br /&gt;&lt;br /&gt;- Create a new database, db2&lt;br /&gt;- Run this command:&lt;br /&gt;&lt;blockquote&gt;mysqldump -h [server] -u [user] -p[password] db1 | mysql -h [server] -u [user] -p[password] db2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Note: there is no space between -p and the password.&lt;br /&gt;&lt;br /&gt;Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-2808102420917853387?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/2808102420917853387/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=2808102420917853387" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2808102420917853387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2808102420917853387?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2009/03/how-to-duplicate-mysql-database.html" title="How to duplicate a MySQL database" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;CEMHRH0yeyp7ImA9WxRaE0o.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-2742344412788097367</id><published>2008-12-15T15:19:00.000-05:00</published><updated>2008-12-15T15:20:35.393-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-15T15:20:35.393-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>Stupid TV!</title><content type="html">&lt;a href="http://4.bp.blogspot.com/_fWLG1Ep6fIs/SUa732cYeoI/AAAAAAAAAgQ/h3Tx68nl5KU/s1600-h/258mpz9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 334px; height: 400px;" src="http://4.bp.blogspot.com/_fWLG1Ep6fIs/SUa732cYeoI/AAAAAAAAAgQ/h3Tx68nl5KU/s400/258mpz9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5280114181320243842" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-2742344412788097367?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/2742344412788097367/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=2742344412788097367" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2742344412788097367?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2742344412788097367?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/12/stupid-tv.html" title="Stupid TV!" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fWLG1Ep6fIs/SUa732cYeoI/AAAAAAAAAgQ/h3Tx68nl5KU/s72-c/258mpz9.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkYMSX09fSp7ImA9WxRVFUw.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-5493227379546690061</id><published>2008-11-12T14:25:00.001-05:00</published><updated>2008-11-12T14:29:48.365-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-12T14:29:48.365-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>Microsoft Ergonomic Keyboard 4000 &amp; Logitech TrackMan Wheel</title><content type="html">&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_fWLG1Ep6fIs/SRsuoAqdkfI/AAAAAAAAAco/aV6B1qA8l04/s1600-h/100_1632%20%5B800x600%5D%5B2%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="100_1632 [800x600]" src="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRsuoYGvSEI/AAAAAAAAAcs/N7iREoL8K2s/100_1632%20%5B800x600%5D_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRsupodKirI/AAAAAAAAAcw/gbusVTCzhCY/s1600-h/100_1619%20%5B800x600%5D%5B7%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="100_1619 [800x600]" src="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRsuqRVnH-I/AAAAAAAAAc0/X2h2JUWH9qs/100_1619%20%5B800x600%5D_thumb%5B5%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRsth6l0lwI/AAAAAAAAAcI/nwPkWOzt1M8/s1600-h/100_1624%20%5B800x600%5D%5B5%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="100_1624 [800x600]" src="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRstiNQ4gvI/AAAAAAAAAcM/KK0xU8p5wuo/100_1624%20%5B800x600%5D_thumb%5B1%5D.jpg?imgmax=800" width="184" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRstiz88TLI/AAAAAAAAAcQ/ZTgNnpuk-s0/s1600-h/100_1627%20%5B800x600%5D%5B8%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="100_1627 [800x600]" src="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRstjqmRBsI/AAAAAAAAAcU/FZbpxlyju2I/100_1627%20%5B800x600%5D_thumb%5B4%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRstjxkgSJI/AAAAAAAAAcY/0WN9W_AB_4A/s1600-h/100_1629%20%5B800x600%5D%5B5%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="100_1629 [800x600]" src="http://lh5.ggpht.com/_fWLG1Ep6fIs/SRstkU7AFeI/AAAAAAAAAcc/_GQmLnu8FFo/100_1629%20%5B800x600%5D_thumb%5B1%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRstk0oxjeI/AAAAAAAAAcg/OumrgsEGes8/s1600-h/100_1630%20%5B800x600%5D%5B5%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="164" alt="100_1630 [800x600]" src="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRstlWcui_I/AAAAAAAAAck/EgQXoEl-RkQ/100_1630%20%5B800x600%5D_thumb%5B1%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-5493227379546690061?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/5493227379546690061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=5493227379546690061" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/5493227379546690061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/5493227379546690061?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/microsoft-ergonomic-keyboard-4000.html" title="Microsoft Ergonomic Keyboard 4000 &amp;amp; Logitech TrackMan Wheel" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRsuoYGvSEI/AAAAAAAAAcs/N7iREoL8K2s/s72-c/100_1632%20%5B800x600%5D_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUYMRXc6fSp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-6910943351719125759</id><published>2008-11-10T23:18:00.004-05:00</published><updated>2008-11-21T00:59:44.915-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:59:44.915-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><title>Part V: Web Pages</title><content type="html">&lt;p&gt;Now that we have the classes ready let's create the web pages and finish up this project.&lt;/p&gt;  &lt;p&gt;We'll start with the categories page, create a new web form and uncheck the &amp;quot;Place code in separate file&amp;quot; check box, call it &amp;quot;Categories.aspx&amp;quot;&lt;/p&gt;  &lt;p&gt;The page has a grid view control and an object data source control. The grid view has template fields for viewing, editing and adding items. The object data source points to the category class and its methods.&lt;/p&gt;  &lt;p&gt;The view and edit are handled by the object data source and grid view but he insert command needs some extra code. Here the code to add a new category:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected void btnAdd_Click(object sender, EventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TextBox title = grdCategories.FooterRow.FindControl(&amp;quot;txtTitleAdd&amp;quot;) as TextBox; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsCategories.InsertParameters[&amp;quot;title&amp;quot;].DefaultValue = title.Text;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsCategories.Insert();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have the text field at the footer of the grid view so the first line creates a new field pointing to the grid view field, the second line gets the field text value and the third line inserts the category into the table.&lt;/p&gt;  &lt;p&gt;The same concept is applied to the bookmarks page. Create a new web form, uncheck the box and call it &amp;quot;Default.aspx&amp;quot;, calling it default to be the startup page.&lt;/p&gt;  &lt;p&gt;Here's the add button code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;protected void btnAdd_Click(object sender, EventArgs e)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TextBox title = grdBookmarks.FooterRow.FindControl(&amp;quot;txtTitleAdd&amp;quot;) as TextBox;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TextBox url = grdBookmarks.FooterRow.FindControl(&amp;quot;txtUrlAdd&amp;quot;) as TextBox;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DropDownList categoryId = grdBookmarks.FooterRow.FindControl(&amp;quot;ddlCategoriesAdd&amp;quot;) as DropDownList; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsBookmarks.InsertParameters[&amp;quot;title&amp;quot;].DefaultValue = title.Text;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsBookmarks.InsertParameters[&amp;quot;url&amp;quot;].DefaultValue = url.Text;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsBookmarks.InsertParameters[&amp;quot;categoryId&amp;quot;].DefaultValue = categoryId.SelectedValue;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; odsBookmarks.Insert();       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A bookmark has a title, url and a category id. The first three lines create the fields we need to get the values of the new bookmark. The next three lines sets the parameter values and the last line insert the record into the bookmark table.&lt;/p&gt;  &lt;p&gt;The complete code can be found here:    &lt;br /&gt;&lt;a href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/Categories.aspx"&gt;Categories.aspx&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/Default.aspx"&gt;Default.aspx&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;If the code doesn't show up then view the source code of the page.&lt;/p&gt;  &lt;p&gt;I didn't get into the grid view asp and html code because the main goal of this tutorial is how to use .NET with MySQL. I hope this tutorial will help get started. Have a look at the grid view code, it's quite interesting what you can do with this powerful control.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-6910943351719125759?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/6910943351719125759/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=6910943351719125759" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6910943351719125759?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6910943351719125759?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/part-v-web-pages.html" title="Part V: Web Pages" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEEMRng_fyp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1610344756336369788</id><published>2008-11-10T17:41:00.002-05:00</published><updated>2008-11-21T00:51:27.647-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:51:27.647-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Family Guy - Visiting Ground Zero</title><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c52289d8-3f5f-4b0e-bea4-c07860eb5f81" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cpP7b2lUxVE&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/cpP7b2lUxVE&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1610344756336369788?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1610344756336369788/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1610344756336369788" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1610344756336369788?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1610344756336369788?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/family-guy-visiting-ground-zero.html" title="Family Guy - Visiting Ground Zero" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0UNRns6fSp7ImA9WxRVE0g.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-312412901470436849</id><published>2008-11-10T16:05:00.001-05:00</published><updated>2008-11-10T16:08:17.515-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-10T16:08:17.515-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>Going Ergonomic</title><content type="html">&lt;h2&gt;Microsoft Comfort Curve 2000 &lt;/h2&gt;  &lt;p&gt;A few months ago I bought the &lt;a href="http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=040"&gt;Microsoft Comfort Curve 2000 Keyboard&lt;/a&gt; (wired), it&amp;#8217;s not ergonomic but halfway there. The keys are curved and very thin similar to a laptop keyboard but better. The reason for buying it is my wrists, felt a sharp pain and thought of buying a new keyboard but didn&amp;#8217;t want to spend a lot of money so I got this one from &lt;a href="http://futureshop.ca/"&gt;Futureshop.ca&lt;/a&gt; for $15 CAD. Very cheap compared to other ergonomic or &amp;#8220;somewhat ergonomic&amp;#8221; models. If you looking for a cheap keyboard and one that you don&amp;#8217;t have to spend time getting used to then the Microsoft Comfort Curve 2000 Keyboard is the one.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRiiErmw8JI/AAAAAAAAAbk/XBESm-68KVM/a46ga%5B8%5D.jpg?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="202" alt="Microsoft Comfort Curve 2000 " src="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRiiFL8e9EI/AAAAAAAAAbo/80tPfZUj_Oc/a46ga_thumb%5B6%5D.jpg?imgmax=800" width="417" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt; cheap, thin keys, curved, easy to get used to     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Cons:&lt;/strong&gt; no customizable keys&lt;/p&gt;  &lt;h2&gt;   &lt;br /&gt;Logitech TrackMan Wheel&lt;/h2&gt;  &lt;p&gt;Last week I felt a pain in my right wrist from using the mouse for long hours so I bought the &lt;a href="http://www.logitech.com/index.cfm/mice_pointers/trackballs/devices/166&amp;amp;cl=ca,en#"&gt;Logitech TrackMan Wheel&lt;/a&gt; (wired) from &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRiiFfdCheI/AAAAAAAAAbs/W13YIuHbP18/trackman%5B5%5D.jpg?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="283" alt="Logitech TrackMan Wheel" src="http://lh4.ggpht.com/_fWLG1Ep6fIs/SRiiFjT552I/AAAAAAAAAbw/H470DB5AsVA/trackman_thumb%5B3%5D.jpg?imgmax=800" width="224" align="right" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://newegg.ca/"&gt;Newegg.ca&lt;/a&gt; for $36 CAD with free shipping. This mouse is the best mouse I&amp;#8217;ve ever used. In a few minutes I was quite comfortable using it, looks like it&amp;#8217;ll take awhile to get to use your thumb and not your hand but not at all. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt; comfortable, easy to use, doesn't take a lot of desk space     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Cons:&lt;/strong&gt; only three buttons (two buttons and scroll), no customizable buttons, not for games (I use a regular mouse when playing games)&lt;/p&gt;  &lt;h2&gt;   &lt;br /&gt;Microsoft Ergonomic Keyboard 4000&lt;/h2&gt;  &lt;p&gt;This is a true ergonomic keyboard. The first keyboard I've ever had was the white split in half Microsoft keyboard but unfortunately I started using regular keyboards when I was in university and now at work. Today I bought the 4000 version which is obviously improved and even more comfortable. Bought the &lt;a href="http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=043"&gt;Microsoft Ergonomic Keyboard 4000&lt;/a&gt; from &lt;a href="http://staples.ca/"&gt;Staples.ca&lt;/a&gt; for $50 CAD, expensive but worth it. Been using it for a few hours and so far so good, no doubt I've made a number of misspellings but that's expected.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRiiGhMghuI/AAAAAAAAAb0/5kd8eq0k_YE/microsoft_ergonomic_keyboard%5B4%5D.jpg?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="Microsoft Ergonomic Keyboard 4000" src="http://lh6.ggpht.com/_fWLG1Ep6fIs/SRiiHErtexI/AAAAAAAAAb4/2X8Mrfv0bb4/microsoft_ergonomic_keyboard_thumb%5B2%5D.jpg?imgmax=800" width="408" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pros: &lt;/strong&gt;ergonomic, customizable buttons, keys for using calculator (brackets, backspace, equal), function keys, integrated cushion&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Cons: &lt;/strong&gt;spacebar is hard to press (maybe just my keyboard), cheap made (my old regular Logitech keyboard is better made than this one!), takes awhile to get used to, big! 19.8&amp;quot; ~ 50cm wide    &lt;br /&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Conclusion&lt;/h2&gt;  &lt;p&gt;If you're a programmer like me or one who spends long hours using&amp;#160; the keyboard and mouse then I would definitely recommend using the above devices.&lt;/p&gt;  &lt;p&gt;Which keyboard to get? Well, I spend more time at work than home so I'm probably going to use the 4000 at work and the 2000 at home. If you don't want to spend $50 for a keyboard then the 2000 is the answer.&lt;/p&gt;  &lt;p&gt;What about the mouse? I only have one trackball mouse and I think I'll use it at work and get another one for home. I might just get the &lt;a href="http://www.logitech.com/index.cfm/mice_pointers/trackballs/devices/156&amp;amp;cl=ca,en"&gt;Logitech Marble Mouse&lt;/a&gt; for a change but in any case my next mouse will be a trackball mouse for sure. You've got to try a trackball mouse.&lt;/p&gt;  &lt;p&gt;Hope this post will help you choose your next keyboard and/or mouse. I'll post picture of the keyboards and mouse from different angles.&lt;/p&gt;  &lt;p&gt;Feel free to comment about the above devices or other devices, I'm always on the lookout for a better more comfortable mouse and keyboard.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-312412901470436849?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/312412901470436849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=312412901470436849" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/312412901470436849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/312412901470436849?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/going-ergonomic.html" title="Going Ergonomic" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_fWLG1Ep6fIs/SRiiFL8e9EI/AAAAAAAAAbo/80tPfZUj_Oc/s72-c/a46ga_thumb%5B6%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DUYARnY_cSp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-3436421735487947694</id><published>2008-11-03T14:42:00.002-05:00</published><updated>2008-11-21T00:59:07.849-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:59:07.849-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><title>Part IV: MySQL and .NET: Classes</title><content type="html">&lt;p&gt;We are going to create two classes, Bookmark and Category, which represent the two tables.&lt;/p&gt;  &lt;p&gt;First, If you don't have the &amp;#8220;App_Code&amp;#8221; folder in your project already, right click on the project &amp;gt; Add ASP.NET Folder &amp;gt; App_Code.&lt;/p&gt;  &lt;p&gt;Now add two classes to App_Code, Bookmark and Category, and add the following lines to use the DataTable and MySQL classes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System.Data;      &lt;br /&gt;using MySql.Data.MySqlClient;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The classes are somewhat similar, every function connects to the database server, sets the stored procedure parameter, performs the operation and returns data in the case of a select statement.&lt;/p&gt;  &lt;p&gt;Let's look at one common piece of code line by line:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;// create a MySQL connection object and      &lt;br /&gt;// set the connection string       &lt;br /&gt;MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings[&amp;quot;DBMonkey&amp;quot;].ToString());       &lt;br /&gt;      &lt;br /&gt;// create a MySQL command to perform the SQL operations&lt;/p&gt;    &lt;p&gt;MySqlCommand cmd = new MySqlCommand(); &lt;/p&gt;    &lt;p&gt;try      &lt;br /&gt;{&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // set the command's connection object       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cmd.Connection = conn;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // set the name of the stored procedure      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cmd.CommandText = &amp;quot;categoryDelete&amp;quot;;&amp;#160; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; // tell the command that it will execute a stored procedure       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cmd.CommandType = CommandType.StoredProcedure;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // add a MySQL parameter object to the command and      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // set the parameter name and value       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cmd.Parameters.Add(new MySqlParameter(&amp;quot;in_categoryId&amp;quot;, categoryId));       &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // open the connection      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; conn.Open();       &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // execute the command      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cmd.ExecuteNonQuery();       &lt;br /&gt;}       &lt;br /&gt;catch (Exception ex)       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; throw new Exception(ex.Message);       &lt;br /&gt;}       &lt;br /&gt;finally       &lt;br /&gt;{&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // close the connection       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; conn.Close();       &lt;br /&gt;} &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That was the delete function from the Category class. Simple, right!&lt;/p&gt;  &lt;p&gt;Now let&amp;#8217;s look at the Category class:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System;      &lt;br /&gt;using System.Data;       &lt;br /&gt;using System.Configuration;       &lt;br /&gt;using MySql.Data.MySqlClient; &lt;/p&gt;    &lt;p&gt;// A category has many bookmarks      &lt;br /&gt;public class Category       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Get all categories.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public DataTable Get()       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { ....&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Add a new category.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Call the Update function and pass 0 for categoryId,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // the stored procedure will add a new record.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Insert(string title)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Update(0, title);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Update existing category if categroyId &amp;gt; 0,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // or add a new one if categoryId = 0.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Update(int categoryId, string title)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160; ...&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // Delete category by category id.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Delete(int categoryId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { ...&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And the Bookmark Class: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System;      &lt;br /&gt;using System.Data;       &lt;br /&gt;using System.Configuration;       &lt;br /&gt;using MySql.Data.MySqlClient; &lt;/p&gt;    &lt;p&gt;// A bookmark has only one category      &lt;br /&gt;public class Bookmark       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Get all bookmarks.       &lt;br /&gt;&amp;#160;&amp;#160; // Pass zero to the stored procedure and it will return all bookmarks.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; public DataTable Get()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return GetByCategory(0);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // Get bookmarks by category id.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public DataTable GetByCategory(int categoryId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160; ...&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // Add a new bookmark.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Call the Update function and pass 0 for bookmarkId,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // the stored procedure will add a new record.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Insert(string title, string url, int categoryId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Update(0, title, url, categoryId);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Update existing bookmark if bookmarkId &amp;gt; 0,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // or add a new one if bookmarkId = 0.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Update(int bookmarkId, string title, string url, int categoryId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160; ...&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // Delete bookmark by bookmark id.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public void Delete(int bookmarkId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { ...&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can view the complete code here:    &lt;br /&gt;&lt;a href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/Category.cs"&gt;Category Class&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/Bookmark.cs"&gt;Bookmark Class&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In Part V we'll create the web pages and put everything to together.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-3436421735487947694?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/3436421735487947694/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=3436421735487947694" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3436421735487947694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3436421735487947694?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/part-iv-classes.html" title="Part IV: MySQL and .NET: Classes" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkINRnk5fip7ImA9WxRWFkQ.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-3650844830310444700</id><published>2008-11-03T01:34:00.004-05:00</published><updated>2008-11-03T01:43:17.726-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-03T01:43:17.726-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Countdown - Election Special</title><content type="html">&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/27479739#27479739" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/27479820#27479820" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/27479878#27479878" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/27479927#27479927" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-3650844830310444700?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/3650844830310444700/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=3650844830310444700" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3650844830310444700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3650844830310444700?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/countdown-election-special.html" title="Countdown - Election Special" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEMASHo9eCp7ImA9WxRWFUQ.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1221876554185281997</id><published>2008-11-01T22:14:00.002-04:00</published><updated>2008-11-01T22:20:49.460-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-01T22:20:49.460-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Sarah Palin Pranked</title><content type="html">&lt;p&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QbEwKcs-7Hc&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QbEwKcs-7Hc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dailykos.com/storyonly/2008/11/1/151958/557/831/649050"&gt;http://www.dailykos.com/storyonly/2008/11/1/151958/557/831/649050&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.justiciers.tv/"&gt;http://www.justiciers.tv/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1221876554185281997?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1221876554185281997/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1221876554185281997" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1221876554185281997?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1221876554185281997?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/sarah-palin-pranked.html" title="Sarah Palin Pranked" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0cGSHcyfyp7ImA9WxRWFUw.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-6492179708161014757</id><published>2008-11-01T00:36:00.003-04:00</published><updated>2008-11-01T00:50:29.997-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-01T00:50:29.997-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>THANK YOU ATI</title><content type="html">I played Brothers in Arms: Hell's Highway last month and had to skip the "Black Friday" chapter because there was a problem with the new ATI cards. Part ATI and part Gearbox.&lt;br /&gt;&lt;br /&gt;Gearbox relied on ATI to issue a fix for its drivers, you may think it's ATI's fault (as I did at first) but accroding to a developer at Gearbox, they didn't test the game on the new ATI cards! Only Nvidia!!!&lt;br /&gt;&lt;br /&gt;I have Radeon HD 4850 which is SWEEEEEEEEEEET, everything runs sooooothly.&lt;br /&gt;&lt;br /&gt;I checked Gearbox's forum today and ATI has released a fix. Installed the fix and it fixed the problem :) I can play the "Black Friday" chapter which has pretty cool effects and scenes.&lt;br /&gt;&lt;br /&gt;So, THANK YOU &lt;span style="color:#ff0000;"&gt;ATI&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Here's the fix: &lt;a href="http://support.ati.com/ics/support/default.asp?deptID=894&amp;amp;task=knowledge&amp;amp;questionID=38664"&gt;http://support.ati.com/ics/support/default.asp?deptID=894&amp;amp;task=knowledge&amp;amp;questionID=38664&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-6492179708161014757?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/6492179708161014757/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=6492179708161014757" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6492179708161014757?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6492179708161014757?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/11/thank-you-ati.html" title="THANK YOU ATI" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEMCRH85fyp7ImA9WxRXGUs.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-2400912141595521423</id><published>2008-10-25T16:27:00.001-04:00</published><updated>2008-10-25T16:27:45.127-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-25T16:27:45.127-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Wassup 2008</title><content type="html">&lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b126cb71-2cf8-4e91-8f7c-60fc6e89059f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="d91f1eb1-b825-4dda-a914-8160faf5e64d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Qq8Uc5BFogE" target="_new"&gt;&lt;img src="http://lh3.ggpht.com/tarek.nasser/SQOBQFM3ftI/AAAAAAAAAas/ti_WjPvVXrc/videod7a5531b3905%5B2%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('d91f1eb1-b825-4dda-a914-8160faf5e64d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Qq8Uc5BFogE&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/Qq8Uc5BFogE&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-2400912141595521423?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/2400912141595521423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=2400912141595521423" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2400912141595521423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2400912141595521423?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/wassup-2008.html" title="Wassup 2008" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/tarek.nasser/SQOBQFM3ftI/AAAAAAAAAas/ti_WjPvVXrc/s72-c/videod7a5531b3905%5B2%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkEMSXw9cCp7ImA9WxRXFEg.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-2778652702437990160</id><published>2008-10-19T17:11:00.001-04:00</published><updated>2008-10-19T17:11:28.268-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-19T17:11:28.268-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Update: Palin Rap</title><content type="html">&lt;p&gt;&lt;object type="application/x-shockwave-flash" data="http://widgets.nbc.com/o/4727a250e66f9723/48fb9f1da70756ca/4741e3c5156499a7/91a35722/-cpid/56daa13120955d91" id="W4727a250e66f972348fb9f1da70756ca" width="384" height="283"&gt;&lt;param name="movie" value="http://widgets.nbc.com/o/4727a250e66f9723/48fb9f1da70756ca/4741e3c5156499a7/91a35722/-cpid/56daa13120955d91" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="allowNetworking" value="all" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;/object&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-2778652702437990160?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/2778652702437990160/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=2778652702437990160" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2778652702437990160?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/2778652702437990160?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/update-palin-rap.html" title="Update: Palin Rap" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0IHQ3o_fyp7ImA9WxRXE0Q.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-638665329224034588</id><published>2008-10-19T00:45:00.002-04:00</published><updated>2008-10-19T00:45:32.447-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-19T00:45:32.447-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Late Show w/ David Letterman - Sen John McCain, Full Interview</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rIEbk3tIRVQ&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/rIEbk3tIRVQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-638665329224034588?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/638665329224034588/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=638665329224034588" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/638665329224034588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/638665329224034588?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/late-show-w-david-letterman-sen-john.html" title="Late Show w/ David Letterman - Sen John McCain, Full Interview" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUYBRnsycSp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1438452966592145036</id><published>2008-10-17T08:40:00.002-04:00</published><updated>2008-11-21T00:59:17.599-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:59:17.599-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><title>Part III: MySQL and .NET: Website</title><content type="html">&lt;p&gt;Startup Visual Web Developer and create a new website. I'm going to use C# but you can use VB if you want. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;First, set the connection string&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When you create the project you should get a &lt;em&gt;web.config&lt;/em&gt; file, if not add a new one to your project. We're going to use this file to store the database connection string, we can hard code it but it is a good practice to store the string in the &lt;em&gt;web.config&lt;/em&gt; file with the other project configurations. &lt;/p&gt;  &lt;p&gt;We want to add the &lt;em&gt;&amp;lt;connectionStrings&amp;gt;&lt;/em&gt; block to the &lt;em&gt;&amp;lt;configuration&amp;gt;&lt;/em&gt; block, if it doesn't exist. So open &lt;em&gt;web.config&lt;/em&gt; and under &lt;em&gt;&amp;lt;configuration&amp;gt;&lt;/em&gt; add the following: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;configuration&amp;gt;      &lt;br /&gt;&amp;#160; ....       &lt;br /&gt;&amp;#160; &amp;lt;connectionstrings&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;DBMonkey&amp;quot; connectionstring=&amp;quot;database=dbmonkey;server=localhost;user id=root; pwd=123;Persist Security Info=False;Connect Timeout=30&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/connectionstrings&amp;gt;       &lt;br /&gt;&amp;#160; .....       &lt;br /&gt;&amp;lt;/configuraiton&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Replace the database name, server or root password to match what you have. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Second, add reference to MySQL.Data&lt;/strong&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on Website from the main menu and Add Reference &lt;/li&gt;    &lt;li&gt;Under the .NET tab look for MySQL.Data &lt;/li&gt;    &lt;li&gt;Select it and click OK &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Third, let's test the connection&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;We're going to test the connection so this is a one time thing and then we'll delete the code. Open the load function of the Default.aspx page and add the following: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;protected void Page_Load(object sender, EventArgs e)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160; MySql.Data.MySqlClient.MySqlConnection connection =       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new MySql.Data.MySqlClient.MySqlConnection(       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ConfigurationManager.ConnectionStrings[&amp;quot;DBMonkey&amp;quot;].ToString()); &lt;/p&gt;    &lt;p&gt;&amp;#160; connection.Open(); &lt;/p&gt;    &lt;p&gt;&amp;#160; if (connection.State == ConnectionState.Open)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Response.Write(&amp;quot;Connected!&amp;quot;);       &lt;br /&gt;&amp;#160; else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Response.Write(&amp;quot;Failed!&amp;quot;); &lt;/p&gt;    &lt;p&gt;&amp;#160; connection.Close();      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Run the website and hopefully you'll get the &amp;quot;Connected!&amp;quot; message :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1438452966592145036?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1438452966592145036/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1438452966592145036" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1438452966592145036?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1438452966592145036?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/part-iii-aspnet-website.html" title="Part III: MySQL and .NET: Website" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUUFRH89fSp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1182935282439186122</id><published>2008-10-16T11:32:00.003-04:00</published><updated>2008-11-21T01:00:15.165-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T01:00:15.165-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><title>Part II: MySQL and .NET: Database - updated</title><content type="html">&lt;p&gt;I created a database to do the testing, feel free to use it or create your own. The database name is dbmonkey so if you have a database with the same name then rename my database in the script below. You can download the SQL script from &lt;a title="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql" href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql"&gt;http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The database has two tables and &lt;strike&gt;four&lt;/strike&gt; six stored procedures.&lt;/p&gt; Tables:   &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;bookmark&lt;/strong&gt;: a bookmark has one category       &lt;ul&gt;       &lt;li&gt;bookmarkId &lt;em&gt;integer, auto-increment, primary key&lt;/em&gt; &lt;/li&gt;        &lt;li&gt;title &lt;em&gt;varchar(50)&lt;/em&gt; &lt;/li&gt;        &lt;li&gt;url &lt;em&gt;varchar(100)&lt;/em&gt; &lt;/li&gt;        &lt;li&gt;categoryId &lt;em&gt;integer&lt;/em&gt;           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;category&lt;/strong&gt;: a category has one or more bookmarks       &lt;ul&gt;       &lt;li&gt;categoryId &lt;em&gt;integer, auto-increment, primary key&lt;/em&gt; &lt;/li&gt;        &lt;li&gt;title &lt;em&gt;varchar(50)&lt;/em&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Stored Procedures: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;bookmarkGet&lt;/strong&gt;       &lt;br /&gt;One parameter: categoryId.       &lt;br /&gt;If the categoryId is zero then return all bookmarks, else return bookmarks for that category.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;bookmarkSave&lt;/strong&gt;       &lt;br /&gt;Four parameters: bookmarkId, title, url, categoryId.       &lt;br /&gt;If the bookmarkId is zero then insert a new record, else update the existing record.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;bookmarkDelete&lt;/strong&gt;       &lt;br /&gt;One parameters: bookmarkId.       &lt;br /&gt;Delete bookmark.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;categoryGet&lt;/strong&gt;       &lt;br /&gt;No parameters. Return all categories.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;categorySave&lt;/strong&gt;       &lt;br /&gt;Two parameters: categoryId, title.       &lt;br /&gt;If the categoryId is zero then insert a new record, else update the existing record.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;categoryDelete&lt;/strong&gt;       &lt;br /&gt;One parameters: categoryId.       &lt;br /&gt;Delete category. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can restore the database from MySQL Administrator or the command line. MySQL Administrator is great to view and modify the database structure, very easy to use. &lt;/p&gt;  &lt;p&gt;To restore the database from the command line follow these steps: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Save the script to your desktop &lt;/li&gt;    &lt;li&gt;Go to Start &amp;gt; Run &amp;gt; type: cmd &lt;/li&gt;    &lt;li&gt;Type: cd Desktop &lt;/li&gt;    &lt;li&gt;Type: mysql -u root -p &amp;lt; dbmonkey.sql &lt;/li&gt;    &lt;li&gt;Enter your root password &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Done! Close the window. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL script: &lt;/strong&gt;&lt;a title="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql" href="http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql"&gt;http://www.csmonkey.com/projects/dotnet/mysqlmonkey/dbmonkey.sql&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-- MySQL Administrator dump 1.4      &lt;br /&gt;--       &lt;br /&gt;-- ------------------------------------------------------       &lt;br /&gt;-- Server version&amp;#160;&amp;#160;&amp;#160; 5.0.67-community-nt &lt;/p&gt;    &lt;p&gt;/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;      &lt;br /&gt;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;       &lt;br /&gt;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;       &lt;br /&gt;/*!40101 SET NAMES utf8 */; &lt;/p&gt;    &lt;p&gt;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;      &lt;br /&gt;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;       &lt;br /&gt;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Create schema dbmonkey       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;CREATE DATABASE IF NOT EXISTS dbmonkey;      &lt;br /&gt;USE dbmonkey; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of table `bookmark`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP TABLE IF EXISTS `bookmark`;      &lt;br /&gt;CREATE TABLE `bookmark` (       &lt;br /&gt;&amp;#160; `bookmarkId` int(10) unsigned NOT NULL auto_increment,       &lt;br /&gt;&amp;#160; `title` varchar(50) NOT NULL,       &lt;br /&gt;&amp;#160; `url` varchar(100) NOT NULL,       &lt;br /&gt;&amp;#160; `categoryId` int(10) unsigned NOT NULL,       &lt;br /&gt;&amp;#160; PRIMARY KEY&amp;#160; (`bookmarkId`)       &lt;br /&gt;) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Dumping data for table `bookmark`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;/*!40000 ALTER TABLE `bookmark` DISABLE KEYS */;      &lt;br /&gt;INSERT INTO `bookmark` (`bookmarkId`,`title`,`url`,`categoryId`) VALUES       &lt;br /&gt;(1,'CSMonkey Blog','&lt;a href="http://blog.csmonkey.com',1)"&gt;http://blog.csmonkey.com',1)&lt;/a&gt;,       &lt;br /&gt;(2,'Google Calendar','&lt;a href="http://calendar.google.com',2)"&gt;http://calendar.google.com',2)&lt;/a&gt;,       &lt;br /&gt;(3,'ASP.net','&lt;a href="http://asp.net',3)"&gt;http://asp.net',3)&lt;/a&gt;,       &lt;br /&gt;(4,'Google','&lt;a href="http://google.com',2);"&gt;http://google.com',2);&lt;/a&gt;       &lt;br /&gt;/*!40000 ALTER TABLE `bookmark` ENABLE KEYS */; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of table `category`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP TABLE IF EXISTS `category`;      &lt;br /&gt;CREATE TABLE `category` (       &lt;br /&gt;&amp;#160; `categoryId` int(10) unsigned NOT NULL auto_increment,       &lt;br /&gt;&amp;#160; `title` varchar(50) NOT NULL,       &lt;br /&gt;&amp;#160; PRIMARY KEY&amp;#160; (`categoryId`)       &lt;br /&gt;) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Dumping data for table `category`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;/*!40000 ALTER TABLE `category` DISABLE KEYS */;      &lt;br /&gt;INSERT INTO `category` (`categoryId`,`title`) VALUES       &lt;br /&gt;(1,'CSMonkey'),       &lt;br /&gt;(2,'Google'),       &lt;br /&gt;(3,'Microsoft');       &lt;br /&gt;/*!40000 ALTER TABLE `category` ENABLE KEYS */; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `bookmarkDelete`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `bookmarkDelete`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `bookmarkDelete`(IN in_bookmarkId INT)       &lt;br /&gt;BEGIN       &lt;br /&gt;&amp;#160; DELETE FROM bookmark       &lt;br /&gt;&amp;#160; WHERE bookmarkId = in_bookmarkId;       &lt;br /&gt;END $$       &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `bookmarkGet`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `bookmarkGet`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `bookmarkGet`(IN in_categoryId INT)       &lt;br /&gt;BEGIN &lt;/p&gt;    &lt;p&gt;&amp;#160; IF in_categoryId = 0 THEN      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT * FROM bookmark; &lt;/p&gt;    &lt;p&gt;&amp;#160; ELSE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT *       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM bookmark       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE categoryId = in_categoryId;       &lt;br /&gt;&amp;#160; END IF; &lt;/p&gt;    &lt;p&gt;END $$      &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `bookmarkSave`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `bookmarkSave`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `bookmarkSave`(       &lt;br /&gt;&amp;#160; IN in_bookmarkId INT,       &lt;br /&gt;&amp;#160; IN in_title VARCHAR(50),       &lt;br /&gt;&amp;#160; IN in_url VARCHAR(100),       &lt;br /&gt;&amp;#160; IN in_categoryId INT       &lt;br /&gt;)       &lt;br /&gt;BEGIN &lt;/p&gt;    &lt;p&gt;&amp;#160; IF in_bookmarkId = 0 THEN      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; INSERT INTO bookmark (title, url, categoryId)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; VALUES (in_title, in_url, in_categoryId); &lt;/p&gt;    &lt;p&gt;&amp;#160; ELSE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; UPDATE bookmark       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SET title = in_title,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; url = in_url,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; categoryId = in_categoryId       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE bookmarkId = in_bookmarkId;       &lt;br /&gt;&amp;#160; END IF; &lt;/p&gt;    &lt;p&gt;END $$      &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `categoryDelete`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `categoryDelete`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `categoryDelete`(IN in_categoryId INT)       &lt;br /&gt;BEGIN &lt;/p&gt;    &lt;p&gt;&amp;#160; DELETE FROM category      &lt;br /&gt;&amp;#160; WHERE categoryId = in_categoryId; &lt;/p&gt;    &lt;p&gt;END $$      &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `categoryGet`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `categoryGet`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `categoryGet`()       &lt;br /&gt;BEGIN       &lt;br /&gt;&amp;#160; SELECT *       &lt;br /&gt;&amp;#160; FROM category       &lt;br /&gt;&amp;#160; ORDER BY title ASC;       &lt;br /&gt;END $$       &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;--      &lt;br /&gt;-- Definition of procedure `categorySave`       &lt;br /&gt;-- &lt;/p&gt;    &lt;p&gt;DROP PROCEDURE IF EXISTS `categorySave`; &lt;/p&gt;    &lt;p&gt;DELIMITER $$ &lt;/p&gt;    &lt;p&gt;/*!50003 SET @TEMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER' */ $$      &lt;br /&gt;CREATE DEFINER=`root`@`localhost` PROCEDURE `categorySave`(       &lt;br /&gt;&amp;#160; IN in_categoryId INT,       &lt;br /&gt;&amp;#160; IN in_title VARCHAR(50)       &lt;br /&gt;)       &lt;br /&gt;BEGIN &lt;/p&gt;    &lt;p&gt;&amp;#160; IF in_categoryId = 0 THEN      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; INSERT INTO category (title)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; VALUES (in_title); &lt;/p&gt;    &lt;p&gt;&amp;#160; ELSE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; UPDATE bookmark       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SET title = in_title       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; WHERE categoryId = in_categoryId;       &lt;br /&gt;&amp;#160; END IF; &lt;/p&gt;    &lt;p&gt;END $$      &lt;br /&gt;/*!50003 SET SESSION SQL_MODE=@TEMP_SQL_MODE */&amp;#160; $$ &lt;/p&gt;    &lt;p&gt;DELIMITER ; &lt;/p&gt;    &lt;p&gt;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;      &lt;br /&gt;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;       &lt;br /&gt;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;       &lt;br /&gt;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;       &lt;br /&gt;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;       &lt;br /&gt;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;       &lt;br /&gt;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1182935282439186122?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1182935282439186122/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1182935282439186122" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1182935282439186122?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1182935282439186122?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/part-ii-mysql-database.html" title="Part II: MySQL and .NET: Database - updated" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUYBSH45fCp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1639700313467404886</id><published>2008-10-15T20:35:00.002-04:00</published><updated>2008-11-21T00:59:19.024-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:59:19.024-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><title>Part I: MySQL and .NET</title><content type="html">&lt;p&gt;I always use SQL Server for .net application, web or desktop, they work very well together and provide a lot of tools that make my programming life easy. MySQL for PHP applications, they too work together nicely. But recently I tried to use MySQL with .net using MySQL .net connecter, it was very easy to connect to the database and manipulate the data.&lt;/p&gt;  &lt;p&gt;I'm going to break this tutorial into several parts, each will talk about one component of MySQL connecter (library) and at the end I will combine everything in one working application, it'll be a web application but you can apply the same code to a desktop (windows forms) application.&lt;/p&gt;  &lt;p&gt;So what do you need?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Visual Web Developer, I'm going to use 2008 but you can use 2005 if you want. &lt;a title="http://www.asp.net/downloads/essential/" href="http://www.asp.net/downloads/essential/"&gt;http://www.asp.net/downloads/essential/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;MySQL &lt;a title="http://dev.mysql.com/downloads/mysql/" href="http://dev.mysql.com/downloads/mysql/"&gt;http://dev.mysql.com/downloads/mysql/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;MySQL .net connecter &lt;a title="http://dev.mysql.com/downloads/connector/net/" href="http://dev.mysql.com/downloads/connector/net/"&gt;http://dev.mysql.com/downloads/connector/net/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;MySQL GUI Tools, not necessary but makes my life easy :) &lt;a title="http://dev.mysql.com/downloads/gui-tools/" href="http://dev.mysql.com/downloads/gui-tools/"&gt;http://dev.mysql.com/downloads/gui-tools/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That's pretty much it, download and install the apps and head to Part II.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1639700313467404886?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1639700313467404886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1639700313467404886" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1639700313467404886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1639700313467404886?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/part-i-mysql-and-net.html" title="Part I: MySQL and .NET" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEEGRXc9eyp7ImA9WxRUEkk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-8613055459974871753</id><published>2008-10-06T02:49:00.001-04:00</published><updated>2008-11-21T00:50:24.963-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-21T00:50:24.963-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>SNL: VP Debate - Palin / Biden</title><content type="html">&lt;!--[if IE]&gt;&lt;object type="application/x-shockwave-flash" id=W4727a250e66f972348e9b4d26aa64244" width="384" height="283"&gt;&lt;param name="movie" value="http://widgets.nbc.com/o/4727a250e66f9723/48e9b4d26aa64244/4741e3c5156499a7/1aca37de/-cpid/9b352bc621baa7ed" /&gt;&lt;![endif]--&gt;&lt;!--[if !IE]&gt;--&gt;&lt;object type="application/x-shockwave-flash" data="http://widgets.nbc.com/o/4727a250e66f9723/48e9b4d26aa64244/4741e3c5156499a7/1aca37de/-cpid/9b352bc621baa7ed" id="W4727a250e66f972348e9b4d26aa64244" width="384" height="283"&gt;&lt;!--&lt;![endif]--&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="allowNetworking" value="all" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-8613055459974871753?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/8613055459974871753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=8613055459974871753" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/8613055459974871753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/8613055459974871753?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/10/snl-vp-debate-palin-biden.html" title="SNL: VP Debate - Palin / Biden" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkINRn0zfSp7ImA9WxRRFkg.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-7330129418209550651</id><published>2008-09-28T23:23:00.001-04:00</published><updated>2008-09-28T23:23:17.385-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-28T23:23:17.385-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Obama Is Right: McCain Was Wrong</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xG1aOORf8Pc&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xG1aOORf8Pc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-7330129418209550651?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/7330129418209550651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=7330129418209550651" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/7330129418209550651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/7330129418209550651?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/09/obama-is-right-mccain-was-wrong.html" title="Obama Is Right: McCain Was Wrong" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ck4BRH4yfCp7ImA9WxRRFEQ.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-3036551212936556312</id><published>2008-09-27T00:48:00.000-04:00</published><updated>2008-09-27T00:49:15.094-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-27T00:49:15.094-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Jack Cafferty Tells Us How He Really Feels About Sarah Palin</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/L8__aXxXPVc&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/L8__aXxXPVc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-3036551212936556312?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/3036551212936556312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=3036551212936556312" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3036551212936556312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/3036551212936556312?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/09/jack-cafferty-tells-us-how-he-really.html" title="Jack Cafferty Tells Us How He Really Feels About Sarah Palin" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ck4EQ3g_fyp7ImA9WxRRFEQ.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-425498409503644717</id><published>2008-09-27T00:47:00.000-04:00</published><updated>2008-09-27T00:48:22.647-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-27T00:48:22.647-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>McCain Bails on Letterman</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MCkbiyuh44k&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MCkbiyuh44k&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-425498409503644717?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/425498409503644717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=425498409503644717" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/425498409503644717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/425498409503644717?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/09/mccain-bails-on-letterman.html" title="McCain Bails on Letterman" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0QHQ3o7eCp7ImA9WxRSFEk.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-6039389881861734607</id><published>2008-09-14T23:19:00.001-04:00</published><updated>2008-09-14T23:28:52.400-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-14T23:28:52.400-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>New computer</title><content type="html">&lt;p&gt;Got new PC parts last week, new graphics card, motherboard, CPU cooler, power supply and case. The rest comes from my the old computer. &lt;/p&gt;  &lt;p&gt;Motherboard: Asus P5KPL-CM    &lt;br /&gt;CPU: Intel Core Duo E4500 2.2 GHz     &lt;br /&gt;CPU Cooler: Zalman CNPS7700-AlCu     &lt;br /&gt;RAM: 2 x OCZ DDR2 PC5400 1 GB     &lt;br /&gt;Graphics card: Sapphire ATI Radeon HD 4850 512MB GDDR3 PCI-E    &lt;br /&gt;Hard disk: Western Digital SATA 2 500GB     &lt;br /&gt;DVD-ROM: Sony     &lt;br /&gt;DVD-RW: BenQ     &lt;br /&gt;Case: Antec Sonata III Piano Black Quiet ATX Mid 500W&lt;/p&gt;  &lt;p&gt;Now I can play the latest games! Playing Crysis, Medal of Honor Airborne, Call of Duty 4 (Modern Warfare), Hitman Blood Money and Medieval II Total War. Most importantly the computer is so quiet, I have control over the CPU and case fans.&lt;/p&gt;  &lt;p&gt;Got the new parts from &lt;a href="http://www.greenlyph.com/" target="_blank"&gt;Greenlyph&lt;/a&gt;, a local computer store in Halifax Nova Scotia. They offer the best (cheapest) prices compared to other stores and very good customer service. So if you're thinking about upgrading your PC I definitely recommend &lt;a href="http://www.greenlyph.com/" target="_blank"&gt;Greenlyph&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-6039389881861734607?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/6039389881861734607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=6039389881861734607" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6039389881861734607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/6039389881861734607?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/09/new-computer.html" title="New computer" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMDSH46cCp7ImA9WxRTFko.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-1595641122682081677</id><published>2008-09-06T00:12:00.000-04:00</published><updated>2008-09-06T00:14:39.018-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-06T00:14:39.018-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>CNN: Tucker Bounds On Palin Foreign Policy Experience</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4jRhN5Et9QQ&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4jRhN5Et9QQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-1595641122682081677?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/1595641122682081677/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=1595641122682081677" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1595641122682081677?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/1595641122682081677?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/09/cnn-tucker-bounds-on-palin-foreign.html" title="CNN: Tucker Bounds On Palin Foreign Policy Experience" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUUFSXs6fCp7ImA9WxRTEEg.&quot;"><id>tag:blogger.com,1999:blog-4192355461465918830.post-4122767542175711646</id><published>2008-08-29T20:46:00.001-04:00</published><updated>2008-08-29T20:46:58.514-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-29T20:46:58.514-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Videos" /><title>Barack Obama at the 2008 DNC</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yZCrIeRkMhA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/yZCrIeRkMhA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4192355461465918830-4122767542175711646?l=blog.csmonkey.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.csmonkey.com/feeds/4122767542175711646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4192355461465918830&amp;postID=4122767542175711646" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/4122767542175711646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4192355461465918830/posts/default/4122767542175711646?v=2" /><link rel="alternate" type="text/html" href="http://blog.csmonkey.com/2008/08/barack-obama-at-2008-dnc.html" title="Barack Obama at the 2008 DNC" /><author><name>Tarek Nasser</name><uri>http://www.blogger.com/profile/06016848301838875119</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="7" src="http://1.bp.blogspot.com/_fWLG1Ep6fIs/SowNWpjE3NI/AAAAAAAAAiY/NJcli_dGF0s/s1600-R/csmonkey.png" /></author><thr:total>0</thr:total></entry></feed>

