<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Tips &amp; Tricks</title><link>http://blogs.clearscreen.com/raylinder/category/179.aspx</link><description>Tips/Tricks to remember and use...</description><managingEditor>Ray Linder</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Ray Linder</dc:creator><title>Using SMTP and Gmail in ASP.NET 2.0...</title><link>http://blogs.clearscreen.com/raylinder/archive/2007/01/13/5959.aspx</link><pubDate>Sat, 13 Jan 2007 00:41:00 GMT</pubDate><guid>http://blogs.clearscreen.com/raylinder/archive/2007/01/13/5959.aspx</guid><wfw:comment>http://blogs.clearscreen.com/raylinder/comments/5959.aspx</wfw:comment><comments>http://blogs.clearscreen.com/raylinder/archive/2007/01/13/5959.aspx#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://blogs.clearscreen.com/raylinder/comments/commentRss/5959.aspx</wfw:commentRss><trackback:ping>http://blogs.clearscreen.com/raylinder/services/trackbacks/5959.aspx</trackback:ping><description>&lt;p&gt;Ok, Google (Gmail) is hosting our emails through "domain sharing". Basically, any emails being sent to &lt;a href="mailto:raylinder@glacsy.com"&gt;raylinder@glacsy.com&lt;/a&gt; goes to Gmail and Gmail hosts it. My concern was SMTP from our website in ASP.NET 2.0. Yes, sound overwhelmingly exciting doesn't it? Well, there's is a way, the LONG and easier way or the short and painful way. LONG and easier way is, you build a SMTP class/control and namespace it to something like Glacsy.Net.WebMail then create a the SMTP assembly to accept parameters like From, To, BCC, Subject, Body. Then every page you want to send email, just map it to the class. Long time to build it, easy to use. I'm not getting into the short and painful way, you can just use your imagination. Below is some code on your page (yes, finally I'm including code):&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a47bec56-8e2a-4b77-bd3b-f7696936639e" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;pre style="BACKGROUND-COLOR: white"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="COLOR: #000000"&gt;Glacsy.Net.WebMail.SMTP(&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;welcome@glacsy.com&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;, someone@their&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;-&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;email.com, &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;bcc@some-one-else.com&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;, &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;My Subject&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;, &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;My body or message...&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This is what you would use to pass a page to email. Below is the SMTP.cs code in the App_Code directory to use:&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:4dd1af65-45cc-460b-a4f3-8b9742a06fcb" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;pre style="BACKGROUND-COLOR: white"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; System.Net;
&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; System.Net.Mail;
&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; System.Text;

&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; Glacsy.Net
{
    &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; WebMail
    {
        &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;static&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; SMTP(&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; from, &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; to, &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; bcc, &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; subject, &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; body)
        {
            MailMessage mailMsg &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; MailMessage();
            mailMsg.From &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; MailAddress(from);
            mailMsg.To.Add(to);
            mailMsg.Subject &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; subject;
            mailMsg.IsBodyHtml &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;;
            mailMsg.BodyEncoding &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; Encoding.UTF8;
            mailMsg.Body &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; body;
            mailMsg.Priority &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; MailPriority.Normal;
            &lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt; Smtp configuration&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;
&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;            SmtpClient client &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; SmtpClient();
            client.Credentials &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; NetworkCredential(&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;youremail@gmail.com&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;, &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;yourpassword&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;);
            client.Port &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;587&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;; &lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;or use 465            &lt;/span&gt;&lt;span style="COLOR: #008000"&gt;
&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;            client.Host &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;smtp.gmail.com&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;;
            client.EnableSsl &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;;
            &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;object&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; userState &lt;/span&gt;&lt;span style="COLOR: #000000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; mailMsg;
            &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;try&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;
            {
                &lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;you can also call client.Send(msg)&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;
&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;                client.SendAsync(mailMsg, userState);
            }
            &lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="COLOR: #000000"&gt; (SmtpException)
            {
                &lt;/span&gt;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Catch errors...&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;
&lt;/span&gt;&lt;span style="COLOR: #000000"&gt;            }
        }
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Now, this is the easiest and simplest way I could think for sending email via Gmail. If you have a better way, let me know and I'll test it out. The good thing is the speed of development this setup will provide in the long run. I may build and release a .dll file of this in the future for everyone. But for now, enjoy...&lt;img src ="http://blogs.clearscreen.com/raylinder/aggbug/5959.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p>Ok, Google (Gmail) is hosting our emails through "domain sharing". Basically, any emails being sent to <a href="mailto:raylinder@glacsy.com">raylinder@glacsy.com</a> goes to Gmail and Gmail hosts it. My concern was SMTP from our website in ASP.NET 2.0. Yes, sound overwhelmingly exciting doesn't it? Well, there's is a way, the LONG and easier way or the short and painful way. LONG and easier way is, you build a SMTP class/control and namespace it to something like Glacsy.Net.WebMail then create a the SMTP assembly to accept parameters like From, To, BCC, Subject, Body. Then every page you want to send email, just map it to the class. Long time to build it, easy to use. I'm not getting into the short and painful way, you can just use your imagination. Below is some code on your page (yes, finally I'm including code):</p>
<div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a47bec56-8e2a-4b77-bd3b-f7696936639e" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><pre style="BACKGROUND-COLOR: white"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="COLOR: #000000">Glacsy.Net.WebMail.SMTP(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">welcome@glacsy.com</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, someone@their</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">email.com, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">bcc@some-one-else.com</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">My Subject</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">My body or message...</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div></pre></div><br />This is what you would use to pass a page to email. Below is the SMTP.cs code in the App_Code directory to use:<br /><br />
<p></p>
<div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:4dd1af65-45cc-460b-a4f3-8b9742a06fcb" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><pre style="BACKGROUND-COLOR: white"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Net;
</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Net.Mail;
</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Text;

</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> Glacsy.Net
{
    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> WebMail
    {
        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> SMTP(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> from, </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> to, </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> bcc, </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> subject, </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> body)
        {
            MailMessage mailMsg </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> MailMessage();
            mailMsg.From </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> MailAddress(from);
            mailMsg.To.Add(to);
            mailMsg.Subject </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> subject;
            mailMsg.IsBodyHtml </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;
            mailMsg.BodyEncoding </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Encoding.UTF8;
            mailMsg.Body </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> body;
            mailMsg.Priority </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> MailPriority.Normal;
            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Smtp configuration</span><span style="COLOR: #008000">
</span><span style="COLOR: #000000">            SmtpClient client </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SmtpClient();
            client.Credentials </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> NetworkCredential(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">youremail@gmail.com</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">yourpassword</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);
            client.Port </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">587</span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">or use 465            </span><span style="COLOR: #008000">
</span><span style="COLOR: #000000">            client.Host </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">smtp.gmail.com</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;
            client.EnableSsl </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;
            </span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000"> userState </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> mailMsg;
            </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">
            {
                </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">you can also call client.Send(msg)</span><span style="COLOR: #008000">
</span><span style="COLOR: #000000">                client.SendAsync(mailMsg, userState);
            }
            </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (SmtpException)
            {
                </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Catch errors...</span><span style="COLOR: #008000">
</span><span style="COLOR: #000000">            }
        }
    }
}</span></div></pre></div><br />Now, this is the easiest and simplest way I could think for sending email via Gmail. If you have a better way, let me know and I'll test it out. The good thing is the speed of development this setup will provide in the long run. I may build and release a .dll file of this in the future for everyone. But for now, enjoy...<img src ="http://blogs.clearscreen.com/raylinder/aggbug/5959.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Ray Linder</dc:creator><title>:: Tip/Trick: Updating a database when using Page_Load to load data ::</title><link>http://blogs.clearscreen.com/raylinder/archive/2006/10/17/3999.aspx</link><pubDate>Tue, 17 Oct 2006 17:01:00 GMT</pubDate><guid>http://blogs.clearscreen.com/raylinder/archive/2006/10/17/3999.aspx</guid><wfw:comment>http://blogs.clearscreen.com/raylinder/comments/3999.aspx</wfw:comment><comments>http://blogs.clearscreen.com/raylinder/archive/2006/10/17/3999.aspx#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://blogs.clearscreen.com/raylinder/comments/commentRss/3999.aspx</wfw:commentRss><trackback:ping>http://blogs.clearscreen.com/raylinder/services/trackbacks/3999.aspx</trackback:ping><description>&lt;p&gt;When reading data from a database using the Page_Load event and then updating the database, the data doesn't get updated as &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=796866&amp;amp;SiteID=1" target="_blank"&gt;described here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By including &lt;br /&gt;&lt;br /&gt;if (!Page.IsPostback) &lt;br /&gt;&lt;br /&gt;in before the reader allows data to be updated in other areas on the page/form. Below are examples:&lt;br /&gt;&lt;br /&gt;Update doesn't work:&lt;br /&gt;==================================================================&lt;br /&gt;&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;      DataList1.DataBind(); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)&lt;br /&gt;{&lt;br /&gt;      SqlConnection sqlConn = new SqlConnection("connection");&lt;br /&gt;      SqlCommand sqlComm = new SqlCommand("UPDATE blog_Postings SET title = @title, body = @body WHERE (id = @id)", sqlConn);&lt;br /&gt;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));&lt;br /&gt;      sqlComm.Parameters["@id"].Value = intID;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@title", SqlDbType.NVarChar));&lt;br /&gt;      sqlComm.Parameters["@title"].Value = strTitle;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@body", SqlDbType.NVarChar));&lt;br /&gt;      sqlComm.Parameters["@body"].Value = strBody;&lt;br /&gt;&lt;br /&gt;      sqlComm.CommandType = CommandType.StoredProcedure; &lt;br /&gt;&lt;br /&gt;      sqlConn.Open();&lt;br /&gt;      sqlComm.ExecuteNonQuery();&lt;br /&gt;      sqlConn.Close();&lt;br /&gt;      sqlComm.Dispose();&lt;br /&gt;&lt;br /&gt;      DataList1.EditItemIndex = -1;&lt;br /&gt;      DataList1.DataBind();&lt;br /&gt;} &lt;/p&gt;
&lt;p&gt;When the DataList is updating, the function protected void Page_Load(object sender, EventArgs e) runs again/refreshes which retrieves the old values in the database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update works:&lt;br /&gt;==================================================================&lt;br /&gt;&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;      if (!Page.IsPostBack)&lt;br /&gt;      {&lt;br /&gt;            DataList1.DataBind();&lt;br /&gt;      } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)&lt;br /&gt;{&lt;br /&gt;      SqlConnection sqlConn = new SqlConnection("connection");&lt;br /&gt;      SqlCommand sqlComm = new SqlCommand("UPDATE blog_Postings SET title = @title, body = @body WHERE (id = @id)", sqlConn);&lt;br /&gt;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));&lt;br /&gt;      sqlComm.Parameters["@id"].Value = intID;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@title", SqlDbType.NVarChar));&lt;br /&gt;      sqlComm.Parameters["@title"].Value = strTitle;&lt;br /&gt;      sqlComm.Parameters.Add(new SqlParameter("@body", SqlDbType.NVarChar));&lt;br /&gt;      sqlComm.Parameters["@body"].Value = strBody;&lt;br /&gt;&lt;br /&gt;      sqlConn.Open();&lt;br /&gt;      sqlComm.ExecuteNonQuery();&lt;br /&gt;      sqlConn.Close();&lt;br /&gt;      sqlComm.Dispose(); &lt;br /&gt;&lt;br /&gt;      DataList1.EditItemIndex = -1;&lt;br /&gt;      DataList1.DataBind();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;So, as you can see by not validating the postback will causes data not to update which will lead into hours of frustration. Enjoy...&lt;br /&gt;&lt;br /&gt;(Posted using Windows Live Writer)&lt;/p&gt;&lt;img src ="http://blogs.clearscreen.com/raylinder/aggbug/3999.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p>When reading data from a database using the Page_Load event and then updating the database, the data doesn't get updated as <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=796866&amp;SiteID=1" target="_blank">described here</a>.<br /><br />By including <br /><br />if (!Page.IsPostback) <br /><br />in before the reader allows data to be updated in other areas on the page/form. Below are examples:<br /><br />Update doesn't work:<br />==================================================================<br /><br />protected void Page_Load(object sender, EventArgs e)<br />{<br />      DataList1.DataBind(); <br />}<br /><br />protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)<br />{<br />      SqlConnection sqlConn = new SqlConnection("connection");<br />      SqlCommand sqlComm = new SqlCommand("UPDATE blog_Postings SET title = @title, body = @body WHERE (id = @id)", sqlConn);<br /><br />      sqlComm.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));<br />      sqlComm.Parameters["@id"].Value = intID;<br />      sqlComm.Parameters.Add(new SqlParameter("@title", SqlDbType.NVarChar));<br />      sqlComm.Parameters["@title"].Value = strTitle;<br />      sqlComm.Parameters.Add(new SqlParameter("@body", SqlDbType.NVarChar));<br />      sqlComm.Parameters["@body"].Value = strBody;<br /><br />      sqlComm.CommandType = CommandType.StoredProcedure; <br /><br />      sqlConn.Open();<br />      sqlComm.ExecuteNonQuery();<br />      sqlConn.Close();<br />      sqlComm.Dispose();<br /><br />      DataList1.EditItemIndex = -1;<br />      DataList1.DataBind();<br />} </p>
<p>When the DataList is updating, the function protected void Page_Load(object sender, EventArgs e) runs again/refreshes which retrieves the old values in the database.<br /><br /><br />Update works:<br />==================================================================<br /><br />protected void Page_Load(object sender, EventArgs e)<br />{<br />      if (!Page.IsPostBack)<br />      {<br />            DataList1.DataBind();<br />      } <br />}<br /><br />protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)<br />{<br />      SqlConnection sqlConn = new SqlConnection("connection");<br />      SqlCommand sqlComm = new SqlCommand("UPDATE blog_Postings SET title = @title, body = @body WHERE (id = @id)", sqlConn);<br /><br />      sqlComm.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));<br />      sqlComm.Parameters["@id"].Value = intID;<br />      sqlComm.Parameters.Add(new SqlParameter("@title", SqlDbType.NVarChar));<br />      sqlComm.Parameters["@title"].Value = strTitle;<br />      sqlComm.Parameters.Add(new SqlParameter("@body", SqlDbType.NVarChar));<br />      sqlComm.Parameters["@body"].Value = strBody;<br /><br />      sqlConn.Open();<br />      sqlComm.ExecuteNonQuery();<br />      sqlConn.Close();<br />      sqlComm.Dispose(); <br /><br />      DataList1.EditItemIndex = -1;<br />      DataList1.DataBind();<br />}<br /><br />So, as you can see by not validating the postback will causes data not to update which will lead into hours of frustration. Enjoy...<br /><br />(Posted using Windows Live Writer)</p><img src ="http://blogs.clearscreen.com/raylinder/aggbug/3999.aspx" width = "1" height = "1" /></body></item></channel></rss>