<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[蹉跎岁月]]></title>
	  <link>http://karrykai.blog.163.com</link>
	  <description><![CDATA[细节决定成败，成功源于坚持 海明威说：‘这世界是美好的，值得我们为之奋斗。’——我相信后半句.
]]></description>
	  <language>zh-CN</language>
	  <pubDate>Sat, 5 Jul 2008 17:07:58 +0800</pubDate>
	  <lastBuildDate>Sat, 5 Jul 2008 17:07:58 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[karrykai]]></managingEditor>
	  <webMaster><![CDATA[karry]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[蹉跎岁月]]></title>
	  	<url>http://ava.blog.163.com/photo/uyeejADW0VROcyTaWZZB8Q==/429249339485550136.jpg</url>
	  	<link>http://karrykai.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[玩转GOOGLE--playGoogle.com]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200852703127555</link>
    <description><![CDATA[<div><P>全新blog:</P>
<P>玩转<A href="http://www.playgoogle.com/" target=_blank>GOOGLE--playGoogle.com</A></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200852703127555</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200852703127555</guid>
    <pubDate>Fri, 27 Jun 2008 00:31:27 +0800</pubDate>
    <dcterms:modified>2008-06-27T00:31:27+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[事务处理--基于Micrsoft EnterpriseLibrary]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200801571231110</link>
    <description><![CDATA[<div><P>using System;<BR>using System.Data;<BR>using System.Configuration;<BR>using System.Web;<BR>using System.Web.Security;<BR>using System.Web.UI;<BR>using System.Web.UI.WebControls;<BR>using System.Web.UI.WebControls.WebParts;<BR>using System.Web.UI.HtmlControls;<BR>using System.Collections.Generic;<BR>using Microsoft.Practices.EnterpriseLibrary.Data;<BR>using System.Data.Common;</P>
<P>/// &lt;summary&gt;<BR>/// 事务处理<BR>/// &lt;/summary&gt;<BR>public class TransactionHandle<BR>{<BR>&nbsp;public TransactionHandle()<BR>&nbsp;{<BR>&nbsp;&nbsp;//<BR>&nbsp;&nbsp;// TODO: 在此处添加构造函数逻辑<BR>&nbsp;&nbsp;//<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<BR>&nbsp;&nbsp;&nbsp; /// 取消订单事务处理<BR>&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<BR>&nbsp;&nbsp;&nbsp; /// &lt;param name="OrderId"&gt;订单ID&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp; /// &lt;param name="MemberId"&gt;会员ID&lt;/param&gt;<BR>&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;&lt;/returns&gt;<BR>&nbsp;&nbsp;&nbsp; public bool CancelOrder(int OrderId,int MemberId,int useScroe,float useBalance)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OrderDetail od = new OrderDetail();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Product pro = new Product();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subProduct subPro = new subProduct();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProductStock proStock = new ProductStock();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Database db = DatabaseFactory.CreateDatabase();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///开始事务处理<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (DbConnection conn = db.CreateConnection())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DbTransaction transaction = conn.BeginTransaction();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获取相关产品<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; od.orderId = OrderId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable dt = od.getProListByOrderId(transaction,db);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新产品库存<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataRow dr in dt.Rows)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pro.proId = int.Parse(dr["Pro_Id"].ToString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //购买量<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int num = int.Parse(dr["pro_Num"].ToString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int isCuxiao = int.Parse(dr["Pro_IsCuxiao"].ToString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pro.updateStore(pro.proId, num, transaction, db))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //若为促销产品，跟新促销量<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isCuxiao == 1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!pro.updateCuxiaoNum(num, transaction, db))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subPro.pro_Sub_No = dr["sub_Pro_No"].ToString();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新子类产品库存<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (subPro.updateStore(subPro.pro_Sub_No, num, transaction, db))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新库存流水账<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proStock.proNo = subPro.pro_Sub_No;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proStock.stockChangeTime = DateTime.Now;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proStock.stockChangeNum = num;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!proStock.addStock(transaction, db))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新订单表、会员积分、余额<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order order = new Order();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; order.orderId = OrderId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; order.orderStatus = 6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (order.upDateStatusByOrderId())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Member mem = new Member();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mem.MemberId = MemberId;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新积分、余额<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (mem.updateScoreAndBalance(useScroe, useBalance, transaction, db))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //更新积分明细表</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction.Rollback();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; }</P>
<P><BR>}<BR></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200801571231110</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200801571231110</guid>
    <pubDate>Tue, 15 Jan 2008 19:12:31 +0800</pubDate>
    <dcterms:modified>2008-01-15T19:12:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Jmail(c#) 发送邮件完全解决方案 ]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/13075542007112985443400</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">使用Jmail组建发邮件，发送HTML 格式</P>
<P style="TEXT-INDENT: 2em">代码清单：</P>
<P style="TEXT-INDENT: 2em">using jmail;</P>
<P style="TEXT-INDENT: 2em">using System.Net;</P>
<P style="TEXT-INDENT: 2em">/// &lt;summary&gt;</P>
<P style="TEXT-INDENT: 2em">/// Email 的摘要说明</P>
<P style="TEXT-INDENT: 2em">/// &lt;/summary&gt;</P>
<P style="TEXT-INDENT: 2em">public class Email</P>
<P style="TEXT-INDENT: 2em">{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static string fromMail = "<A href="mailto:service@ecggw.com">service@ecggw.com</A><WBR>";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static string password = "×××××××";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static string smtpServer = "mail.ecggw.com";</P>
<P style="TEXT-INDENT: 2em">public Email()</P>
<P style="TEXT-INDENT: 2em">{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// 发送邮件 没有抄送人</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="userMail"&gt;接收邮件名&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="userName"&gt;发件人姓名&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="mailTitle"&gt;邮件标题&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="mailContent"&gt;邮件内容&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;returns&gt;&lt;/returns&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static bool sendMail(string userMail,string userName,string mailTitle, string mailContent)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmail.Message jmessage = new jmail.MessageClass();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Charset = "GB2312";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.From = fromMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.FromName = "karry";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.ReplyTo = userMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Subject = mailTitle;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.ContentType = "text/html";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.AddRecipient(userMail, userName, "123");</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Body = mailContent;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.MailServerUserName = fromMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.MailServerPassWord = password;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Send(smtpServer, false);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Close(); </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// 重载发送邮件 有抄送人</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="userMail"&gt;接收邮件名&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="copyMail"&gt;抄送邮件名&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="userName"&gt;发件人姓名&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="mailTitle"&gt;邮件标题&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="mailContent"&gt;邮件内容&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;returns&gt;&lt;/returns&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static bool sendMail(string userMail,string copyMail, string userName, string mailTitle, string mailContent)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmail.Message jmessage = new jmail.MessageClass();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Charset = "GB2312";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.From = fromMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.FromName = userName;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.ReplyTo = userMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Subject = mailTitle;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.ContentType = "text/html";</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.AddRecipient(userMail,"", "123");</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.AddRecipientCC(copyMail,"", "123");</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Body = mailContent;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.MailServerUserName = fromMail;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.MailServerPassWord = password;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Send(smtpServer, false);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmessage.Close();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">/// &lt;summary&gt;</P>
<P style="TEXT-INDENT: 2em">/// 将指定页面生成静态的字符串</P>
<P style="TEXT-INDENT: 2em">/// &lt;/summary&gt;</P>
<P style="TEXT-INDENT: 2em">/// &lt;param name="aspxPageUrl"&gt;页面URL地址&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">/// &lt;returns&gt;返回生成的字符&lt;/returns&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static string&nbsp;&nbsp;getPageString(string aspxPageUrl)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string content = string.Empty;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Net.WebRequest wr = WebRequest.Create(aspxPageUrl);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Net.WebResponse wrs = wr.GetResponse();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.IO.StreamReader sr = new System.IO.StreamReader(wrs.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content = sr.ReadToEnd();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sr.Close();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return content;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// 获取字符串中指定字符在出现指定次数的位置</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="str1"&gt;字符串&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="myChar"&gt;指定的字符&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name="count"&gt;指定的出现次数&lt;/param&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;returns&gt;&lt;/returns&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public static int getIndexOf(string str1,char myChar, int myCount)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[] charArr = str1.ToCharArray();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int count = 0;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int j = 0;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; charArr.Length; i++)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j++;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (charArr[i] == myChar)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (count == myCount)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return j;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return j;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;}</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://imgcache.qq.com/qzone_v4/b.gif" border=0></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/13075542007112985443400</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/13075542007112985443400</guid>
    <pubDate>Sat, 29 Dec 2007 20:54:43 +0800</pubDate>
    <dcterms:modified>2007-12-29T20:54:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[自定义分页完全解决方案]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420071012104957306</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD>这周没干别的，就做了一个分页。&nbsp;
<P></P>
<P style="TEXT-INDENT: 2em">开始我用了一个自定义用户控件.ascx来自己做，结果功败垂成。因为分页要与复杂的搜索功能结合在一起，我不想用<WBR>&nbsp;url后面带问好传参数这种方式来处理，所以选择postBack机制，我花了很多时间来让自定义用户控件中的按钮调用引<WBR>用他的父页里面的方法，但是没有成功。后来用了别人写的一个控件ASPNETPAGER来处理。&nbsp;</P>
<P style="TEXT-INDENT: 2em">首先这个分页不是把所有数据都取出来，而是只取当前页的数据，同时我希望分页控件可以到任何地方使用，所以需要<WBR>一个通用的存储过程:<WBR>&nbsp;</P>
<P style="TEXT-INDENT: 2em">CREATE&nbsp;PROCEDURE&nbsp;Pagination&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@tblName&nbsp;&nbsp;&nbsp;varchar(255),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;表名&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@strGetFields&nbsp;varchar(1000)&nbsp;=&nbsp;'*',&nbsp;&nbsp;--&nbsp;需要返回的列&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@fldName&nbsp;varchar(255)='',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;排序的字段名&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@PageSize&nbsp;&nbsp;&nbsp;int&nbsp;=&nbsp;10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页尺寸&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@PageIndex&nbsp;&nbsp;int&nbsp;=&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页码&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@doCount&nbsp;&nbsp;bit&nbsp;=&nbsp;0,&nbsp;&nbsp;&nbsp;--&nbsp;返回记录总数,&nbsp;非&nbsp;0&nbsp;值则返回&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@OrderType&nbsp;bit&nbsp;=&nbsp;0,&nbsp;&nbsp;--&nbsp;设置排序类型,&nbsp;非&nbsp;0&nbsp;值则降序&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">@strWhere&nbsp;&nbsp;varchar(1500)&nbsp;=&nbsp;''&nbsp;&nbsp;--&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;where)&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">AS&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">declare&nbsp;@strSQL&nbsp;&nbsp;&nbsp;varchar(5000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;主语句&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">declare&nbsp;@strTmp&nbsp;&nbsp;&nbsp;varchar(110)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;临时变量&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">declare&nbsp;@strOrder&nbsp;varchar(400)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;排序类型&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">if&nbsp;@doCount&nbsp;!=&nbsp;0&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;if&nbsp;@strWhere&nbsp;!=''&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;count(*)&nbsp;as&nbsp;Total&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']&nbsp;where&nbsp;'+&nbsp;@strWhere&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;count(*)&nbsp;as&nbsp;Total&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']'&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">--以上代码的意思是如果@doCount传递过来的不是0，就执行总数统计。以下的所有代码都&nbsp;</P>
<P style="TEXT-INDENT: 2em">--是@doCount为0的情况&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">else&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">if&nbsp;@OrderType&nbsp;!=&nbsp;0&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;'&lt;(select&nbsp;min'&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">set&nbsp;@strOrder&nbsp;=&nbsp;'&nbsp;order&nbsp;by&nbsp;['+&nbsp;@fldName&nbsp;+']&nbsp;desc'&nbsp;</P>
<P style="TEXT-INDENT: 2em">--如果@OrderType不是0，就执行降序，这句很重要！&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">else&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;'&gt;(select&nbsp;max'&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strOrder&nbsp;=&nbsp;'&nbsp;order&nbsp;by&nbsp;['+&nbsp;@fldName&nbsp;+']&nbsp;asc'&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">if&nbsp;@PageIndex&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;if&nbsp;@strWhere&nbsp;!=&nbsp;''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;top&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;+&nbsp;'&nbsp;&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']&nbsp;where&nbsp;</P>
<P style="TEXT-INDENT: 2em">'&nbsp;+&nbsp;@strWhere&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;@strOrder&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;top&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;+&nbsp;'&nbsp;&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']&nbsp;'+&nbsp;</P>
<P style="TEXT-INDENT: 2em">@strOrder&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">--如果是第一页就执行以上代码，这样会加快执行速度&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">else&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">begin&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">--以下代码赋予了@strSQL以真正执行的SQL代码&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;top&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;+&nbsp;'&nbsp;&nbsp;from&nbsp;['&nbsp;+&nbsp;@tblName&nbsp;+']&nbsp;where&nbsp;['&nbsp;</P>
<P style="TEXT-INDENT: 2em">+&nbsp;@fldName&nbsp;+&nbsp;']'&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;'(['+&nbsp;@fldName&nbsp;+&nbsp;'])&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">from&nbsp;(select&nbsp;top&nbsp;'&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;'&nbsp;['+&nbsp;@fldName&nbsp;+&nbsp;']&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']'&nbsp;+&nbsp;</P>
<P style="TEXT-INDENT: 2em">@strOrder&nbsp;+&nbsp;')&nbsp;as&nbsp;tblTmp)'+&nbsp;@strOrder&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">if&nbsp;@strWhere&nbsp;!=&nbsp;''&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;'select&nbsp;top&nbsp;'&nbsp;+&nbsp;str(@PageSize)&nbsp;+'&nbsp;+&nbsp;'&nbsp;&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']&nbsp;where&nbsp;</P>
<P style="TEXT-INDENT: 2em">['&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;']'&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;'(['+&nbsp;@fldName&nbsp;+&nbsp;'])&nbsp;from&nbsp;(select&nbsp;top&nbsp;'&nbsp;+&nbsp;str((@PageIndex-1)&nbsp;</P>
<P style="TEXT-INDENT: 2em"><A href="mailto:*@PageSize">*@PageSize</A><WBR>)&nbsp;+&nbsp;'&nbsp;['+&nbsp;@fldName&nbsp;+&nbsp;']&nbsp;&nbsp;from&nbsp;['+&nbsp;@tblName&nbsp;+']&nbsp;where&nbsp;'&nbsp;+&nbsp;@strWhere&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;')&nbsp;</P>
<P style="TEXT-INDENT: 2em">as&nbsp;tblTmp)&nbsp;and&nbsp;'&nbsp;+&nbsp;@strWhere&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;@strOrder&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">exec&nbsp;(&nbsp;@strSQL)&nbsp;</P>
<P style="TEXT-INDENT: 2em">GO&nbsp;</P>
<P style="TEXT-INDENT: 2em">为了配合使用这个存储过程，有一个专门的类来对数据做处理，下面是PageHelper.cs的代码清单：<WBR>&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Data;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Configuration;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web.Security;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web.UI;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web.UI.WebControls;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web.UI.WebControls.WebParts;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Web.UI.HtmlControls;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;Microsoft.Practices.EnterpriseLibrary.Data;&nbsp;</P>
<P style="TEXT-INDENT: 2em">using&nbsp;System.Data.Common;&nbsp;</P>
<P style="TEXT-INDENT: 2em">///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">///&nbsp;提供通用的分页方法&nbsp;</P>
<P style="TEXT-INDENT: 2em">///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;PagerHelper&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PagerHelper(string&nbsp;tblname,&nbsp;string&nbsp;sortname,&nbsp;bool&nbsp;docount)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.tblName&nbsp;=&nbsp;tblname;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.fldName&nbsp;=&nbsp;sortname;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.docount&nbsp;=&nbsp;docount;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取记录集的构造函数&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="tblname"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="docount"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="strGetFields"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="fldName"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="pagesize"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="pageindex"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="ordertype"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="strwhere"&gt;&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PagerHelper(string&nbsp;tblname,&nbsp;bool&nbsp;docount,&nbsp;string&nbsp;strGetFields,&nbsp;string&nbsp;fldName,&nbsp;int&nbsp;</P>
<P style="TEXT-INDENT: 2em">pagesize,int&nbsp;pageindex,&nbsp;bool&nbsp;ordertype,&nbsp;string&nbsp;strwhere)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.tblName&nbsp;=&nbsp;tblname;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.docount&nbsp;=&nbsp;docount;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.strGetFields&nbsp;=&nbsp;strGetFields;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.fldName&nbsp;=&nbsp;fldName;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.pagesize&nbsp;=&nbsp;pagesize;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.pageindex&nbsp;=&nbsp;pageindex;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ordertype&nbsp;=&nbsp;ordertype;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.strwhere&nbsp;=&nbsp;strwhere;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**/&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;得到总条数的构造函数&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="tblname"&gt;表名&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="strwhere"&gt;查询条件&lt;/param&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PagerHelper(string&nbsp;tblname,&nbsp;string&nbsp;strwhere)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.tblName&nbsp;=&nbsp;tblname;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.strwhere&nbsp;=&nbsp;strwhere;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.docount&nbsp;=&nbsp;true;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;PagerHelper()&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;tblName;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;TblName&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;tblName;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;tblName&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;strGetFields&nbsp;=&nbsp;"*";&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;StrGetFields&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;strGetFields;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;strGetFields&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//排序的字段名&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;fldName&nbsp;=&nbsp;string.Empty;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;FldName&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;fldName;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;fldName&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;pagesize&nbsp;=&nbsp;10;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;PageSize&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;pagesize;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;pagesize&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;pageindex&nbsp;=&nbsp;1;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;PageIndex&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;pageindex;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;pageindex&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;bool&nbsp;docount&nbsp;=&nbsp;false;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;DoCount&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;docount;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;docount&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;bool&nbsp;ordertype&nbsp;=&nbsp;false;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;OrderType&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;ordertype;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;ordertype&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;strwhere&nbsp;=&nbsp;string.Empty;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;StrWhere&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;strwhere;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;{&nbsp;strwhere&nbsp;=&nbsp;value;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取一个DataReader&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;IDataReader&lt;/returns&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;IDataReader&nbsp;GetDataReader()&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.docount)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;ArgumentException("要返回记录集，DoCount属性一定为false");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;System.Web.HttpContext.Current.Response.Write(pageindex);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Database&nbsp;db&nbsp;=&nbsp;DatabaseFactory.CreateDatabase();&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DbCommand&nbsp;comm&nbsp;=&nbsp;db.GetStoredProcCommand("Pagination");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@tblName",&nbsp;DbType.String,&nbsp;this.tblName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strGetFields",&nbsp;DbType.String,&nbsp;this.strGetFields);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@fldName",&nbsp;DbType.String,&nbsp;this.fldName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageSize",&nbsp;DbType.Int32,&nbsp;this.pagesize);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageIndex",&nbsp;DbType.Int32,&nbsp;this.pageindex);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@doCount",&nbsp;DbType.Boolean,&nbsp;this.docount);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@OrderType",&nbsp;DbType.Boolean,&nbsp;this.ordertype);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strWhere",&nbsp;DbType.String,&nbsp;this.strwhere);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;db.ExecuteReader(comm);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取一个DataSet&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;DataSet&lt;/returns&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;DataSet&nbsp;GetDataSet()&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.docount)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;ArgumentException("要返回记录集，DoCount属性一定为false");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Database&nbsp;db&nbsp;=&nbsp;DatabaseFactory.CreateDatabase();&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DbCommand&nbsp;comm&nbsp;=&nbsp;db.GetStoredProcCommand("Pagination");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@tblName",&nbsp;DbType.String,&nbsp;this.tblName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strGetFields",&nbsp;DbType.String,&nbsp;this.strGetFields);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@fldName",&nbsp;DbType.String,&nbsp;this.fldName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageSize",&nbsp;DbType.Int32,&nbsp;this.pagesize);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageIndex",&nbsp;DbType.Int32,&nbsp;this.pageindex);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@doCount",&nbsp;DbType.Boolean,&nbsp;this.docount);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@OrderType",&nbsp;DbType.Boolean,&nbsp;this.ordertype);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strWhere",&nbsp;DbType.String,&nbsp;this.strwhere);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;db.ExecuteDataSet(comm);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取记录条数&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;int&lt;/returns&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;GetCount()&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!this.docount)&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;ArgumentException("要返回总数统计，DoCount属性一定为true");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Database&nbsp;db&nbsp;=&nbsp;DatabaseFactory.CreateDatabase();&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DbCommand&nbsp;comm&nbsp;=&nbsp;db.GetStoredProcCommand("Pagination");&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@tblName",DbType.String,&nbsp;this.tblName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strGetFields",&nbsp;DbType.String,&nbsp;this.strGetFields);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@fldName",&nbsp;DbType.String,&nbsp;this.fldName);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageSize",&nbsp;DbType.Int32,&nbsp;this.pagesize);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@PageIndex",DbType.Int32,&nbsp;this.pageindex);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@doCount",DbType.Boolean,&nbsp;this.docount);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@OrderType",DbType.Boolean,&nbsp;this.ordertype);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.AddInParameter(comm,&nbsp;"@strWhere",DbType.String,&nbsp;this.strwhere);&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;int.Parse(db.ExecuteScalar(comm).ToString());&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</P>
<P style="TEXT-INDENT: 2em">因为我这个项目中使用了Microsoft.Practices.EnterpriseLibrary.Data,所以在这个类里面我也用到了。&nbsp;</P>
<P style="TEXT-INDENT: 2em">下面是使用ASPNETPAGER控件，要先引入AspNetPager.dll，可以在<WBR>&nbsp;</P>
<P style="TEXT-INDENT: 2em"><A href="http://www.webdiyer.com/AspNetPager/default.aspx">http://www.webdiyer.com/AspNetPager/default.aspx<WBR></A><WBR>&nbsp;&nbsp;上下载：&nbsp;</P>
<P style="TEXT-INDENT: 2em">首先注册：&nbsp;</P>
<P style="TEXT-INDENT: 2em"><WBR>&lt;%@&nbsp;Register&nbsp;Assembly="AspNetPager"&nbsp;Namespace="Wuqi.Webdiyer"&nbsp;TagPrefix="webdiyer"&nbsp;%&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">下面是使用控件的代码：<WBR>&nbsp;</P>
<P style="TEXT-INDENT: 2em">&lt;webdiyer:aspnetpager&nbsp;id="AspNetPager1"&nbsp;runat="server"&nbsp;PageSize="15"&nbsp;AlwaysShow="True"&nbsp;</P>
<P style="TEXT-INDENT: 2em">ShowCustomInfoSection="Left"&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;CustomInfoHTML="当前/共:&lt;font&nbsp;color='red'&gt;&lt;b&gt;%currentPageIndex%&lt;/b&gt;&lt;/font&gt;/%PageCount%&nbsp;%&nbsp;</P>
<P style="TEXT-INDENT: 2em">PageSize%条记录/页&nbsp;&nbsp;"&nbsp;FirstPageText="首页"&nbsp;LastPageText="尾页"&nbsp;NextPageText="下一页"&nbsp;</P>
<P style="TEXT-INDENT: 2em">PrevPageText="上一页"&gt;&lt;/webdiyer:aspnetpager&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">后台根据AspNetPager1.PageSize,&nbsp;AspNetPager1.CurrentPageIndex&nbsp;这两个属性&nbsp;绑定GridView&nbsp;的数据就可以了。<WBR>&nbsp;</P>
<P style="TEXT-INDENT: 2em"></P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420071012104957306</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420071012104957306</guid>
    <pubDate>Mon, 12 Nov 2007 22:49:57 +0800</pubDate>
    <dcterms:modified>2007-11-12T22:49:57+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一周问题总结]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420071049821860</link>
    <description><![CDATA[<div>.Net&nbsp;,我胡汉三又回来了！&nbsp;<BR>以下是我这一周遇到的问题，都通过查资料、请教别人解决了，所以也算是我这一周的收获：&nbsp;<BR><BR><B><WBR>1.GridView中的DataKeyNames的运用。</B><WBR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;在GridView中做删除和修改等操作时，通常需要取得这一行的主键的值，例如新闻ID&nbsp;，但这个值对用户是没有意义的，所以通常不显示给用户看。如果直接在这一列上写&nbsp;Visible="false"&nbsp;，后台会自动不绑定该列的数据，所以这么做是行不通的。以往的做&nbsp;法是在CSS&nbsp;里面定义一个样式，然后让这一列调用这个样式，总觉的这么做不那么优雅&nbsp;，无意中发现微软从DataGrid变为GridView时，针对这个问题加了一个DataKeyNames属性，直接在GridView中写上如：DataKeyNames="newsId"，多个关键字用逗号隔开,后台使用时直接用gridView1.DataKeys[i]["newsId"]就可以获取该列的关键字了。&nbsp;<BR><BR><B><WBR>2.泛型的使用。</B><WBR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;泛型也是.net2.0出来的新东西，用来代替以往的ArrayList，因为后者缺乏类型安全。使用泛型很简单，首先要导入命名空间using&nbsp;System.Collections.Generic，声明一个泛型类更简单&nbsp;List&lt;DateTime&gt;&nbsp;li&nbsp;=&nbsp;new&nbsp;List&lt;DateTime&gt;;"&lt;&gt;"里面可以是任意数据类型，它能保证你加入这个集合的内容的类型安全。目前我知道的应用只有这么多。&nbsp;<BR><BR><B><WBR>3.向MVC模型靠拢</B><WBR>&nbsp;<BR>&nbsp;&nbsp;这次在整个程序的结构设计上没有在按照以前的方式，直接在.aspx.cs文件里面写一些具体的数据库操做等内容，而是为每个数据库表做了一个对应的类来负责这个表的增&nbsp;删改差，同时底层数据库操作使用了Microsoft&nbsp;EnterpriseLibrary来处理。这样做给&nbsp;我带来的好处很明显。本来还想尽力把一些设计模式的思想尽量放进去，如抽象工程模式，但是还没有理解透彻，虽然我说的清楚这些模式具体的实现方式，但是，能给我带来什么样的好处我还弄的不是很明白，这个以后要继续学习了。&nbsp;<BR><BR><B><WBR>4.生成缩略图</B><WBR>&nbsp;<BR>&nbsp;首先需要导入的命名空间有：<BR>using&nbsp;System.Drawing;<BR>using&nbsp;System.Drawing.Imaging;<BR>using&nbsp;System.Drawing.Drawing2D;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;生成缩略图&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="oldpath"&gt;原图路径&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="newpath"&gt;缩略图路径&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="tWidth"&gt;宽度&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="tHeight"&gt;高度&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;bool&nbsp;&nbsp;GreateMiniImage(string&nbsp;oldpath,string&nbsp;newpath,int&nbsp;tWidth,&nbsp;int&nbsp;tHeight)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Image&nbsp;image&nbsp;=&nbsp;System.Drawing.Image.FromFile(oldpath);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;bl=1d;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((image.Width&lt;=image.Height)&amp;&amp;(tWidth&gt;=tHeight))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Height)/Convert.ToDouble(tHeight);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((image.Width&gt;image.Height)&amp;&amp;(tWidth&lt;tHeight))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Width)/Convert.ToDouble(tWidth);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((image.Width&lt;=image.Height)&amp;&amp;(tWidth&lt;=tHeight))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(image.Height/tHeight&gt;=image.Width/tWidth)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Width)/Convert.ToDouble(tWidth);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Height)/Convert.ToDouble(tHeight);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(image.Height/tHeight&gt;=image.Width/tWidth)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Height)/Convert.ToDouble(tHeight);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(image.Width)/Convert.ToDouble(tWidth);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmap&nbsp;b&nbsp;=&nbsp;new&nbsp;Bitmap(image&nbsp;,Convert.ToInt32(image.Width/bl),&nbsp;Convert.ToInt32(image.Height/bl));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重新画图，已保证图片的质量&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;=&nbsp;Graphics.FromImage(b);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.SmoothingMode&nbsp;=&nbsp;SmoothingMode.HighQuality;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.InterpolationMode&nbsp;=&nbsp;InterpolationMode.High;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.DrawImage(image,&nbsp;0,&nbsp;0,&nbsp;Convert.ToInt32(image.Width&nbsp;/&nbsp;bl),&nbsp;Convert.ToInt32(image.Height&nbsp;/&nbsp;bl));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.Save(newpath);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>网上找的，不过我修改了一部分，已保证生成的缩略图的质量。&nbsp;<BR><BR><B><WBR>5.给图片加水印效果，这个用了两个方法,代码如下：</B><WBR>&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;添加图片水印&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="oldpath"&gt;原图片绝对地址&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="newpath"&gt;新图片放置的绝对地址&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;bool&nbsp;addWaterMark(string&nbsp;oldpath,string&nbsp;newpath,string&nbsp;waterMarkPath)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Image&nbsp;image&nbsp;=&nbsp;System.Drawing.Image.FromFile(oldpath);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmap&nbsp;b&nbsp;=&nbsp;new&nbsp;Bitmap(image.Width,&nbsp;image.Height,&nbsp;PixelFormat.Format24bppRgb);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;=&nbsp;Graphics.FromImage(b);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.Clear(Color.White);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.SmoothingMode&nbsp;=&nbsp;SmoothingMode.HighQuality;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.InterpolationMode&nbsp;=&nbsp;InterpolationMode.High;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.DrawImage(image,&nbsp;0,&nbsp;0,&nbsp;image.Width,&nbsp;image.Height);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;WatermarkPosition&nbsp;=&nbsp;"WM_BOTTOM_RIGHT";&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addWatermarkImage(g,&nbsp;waterMarkPath,&nbsp;WatermarkPosition,&nbsp;image.Width,&nbsp;image.Height);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;释放原图资源&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//生成新图，覆盖原图&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.Save(newpath);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;加水印图片,具体的实现&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="picture"&gt;imge&nbsp;对象&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="WaterMarkPicPath"&gt;水印图片的地址&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="_watermarkPosition"&gt;水印位置&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="_width"&gt;被加水印图片的宽&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name="_height"&gt;被加水印图片的高&lt;/param&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;addWatermarkImage(Graphics&nbsp;picture,string&nbsp;WaterMarkPicPath,string&nbsp;_watermarkPosition,int&nbsp;_width,int&nbsp;_height)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Image&nbsp;watermark&nbsp;=&nbsp;new&nbsp;Bitmap(WaterMarkPicPath);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageAttributes&nbsp;imageAttributes&nbsp;=&nbsp;new&nbsp;ImageAttributes();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColorMap&nbsp;colorMap&nbsp;=&nbsp;new&nbsp;ColorMap();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colorMap.OldColor&nbsp;=&nbsp;Color.FromArgb(255,&nbsp;0,&nbsp;255,&nbsp;0);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colorMap.NewColor&nbsp;=&nbsp;Color.FromArgb(0,&nbsp;0,&nbsp;0,&nbsp;0);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColorMap[]&nbsp;remapTable&nbsp;=&nbsp;{colorMap};&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageAttributes.SetRemapTable(remapTable,&nbsp;ColorAdjustType.Bitmap);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float[][]&nbsp;colorMatrixElements&nbsp;=&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;1.0f,&nbsp;&nbsp;0.0f,&nbsp;0.0f},&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.3f,&nbsp;0.0f},&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;float[]&nbsp;{0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;&nbsp;0.0f,&nbsp;1.0f}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColorMatrix&nbsp;colorMatrix&nbsp;=&nbsp;new&nbsp;ColorMatrix(colorMatrixElements);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageAttributes.SetColorMatrix(colorMatrix,&nbsp;ColorMatrixFlag.Default,&nbsp;ColorAdjustType.Bitmap);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;xpos&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ypos&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;WatermarkWidth=0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;WatermarkHeight=0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;bl=1d;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//计算水印图片的比率&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取背景的1/4宽度来比较&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((_width&gt;watermark.Width*4)&amp;&amp;(_height&gt;watermark.Height*4))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=1;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((_width&gt;watermark.Width*4)&amp;&amp;(_height&lt;watermark.Height*4))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(_height/4)/Convert.ToDouble(watermark.Height);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((_width&lt;watermark.Width*4)&amp;&amp;(_height&gt;watermark.Height*4))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(_width/4)/Convert.ToDouble(watermark.Width);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((_width*watermark.Height)&gt;(_height*watermark.Width))&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(_height/4)/Convert.ToDouble(watermark.Height);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl=Convert.ToDouble(_width/4)/Convert.ToDouble(watermark.Width);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WatermarkWidth=Convert.ToInt32(watermark.Width*bl);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WatermarkHeight=Convert.ToInt32(watermark.Height*bl);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(_watermarkPosition)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"WM_TOP_LEFT":&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xpos&nbsp;=&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ypos&nbsp;=&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"WM_TOP_RIGHT":&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xpos&nbsp;=&nbsp;_width&nbsp;-&nbsp;WatermarkWidth&nbsp;-&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ypos&nbsp;=&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"WM_BOTTOM_RIGHT":&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xpos&nbsp;=&nbsp;_width&nbsp;-&nbsp;WatermarkWidth&nbsp;-&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ypos&nbsp;=&nbsp;_height&nbsp;-WatermarkHeight&nbsp;-&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"WM_BOTTOM_LEFT":&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xpos&nbsp;=&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ypos&nbsp;=&nbsp;_height&nbsp;-&nbsp;WatermarkHeight&nbsp;-&nbsp;10;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;picture.DrawImage(watermark,&nbsp;new&nbsp;Rectangle(xpos,&nbsp;ypos,&nbsp;WatermarkWidth,&nbsp;WatermarkHeight),&nbsp;0,&nbsp;0,&nbsp;watermark.Width,&nbsp;watermark.Height,&nbsp;GraphicsUnit.Pixel,&nbsp;imageAttributes);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;watermark.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageAttributes.Dispose();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}</div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420071049821860</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420071049821860</guid>
    <pubDate>Sun, 4 Nov 2007 09:08:21 +0800</pubDate>
    <dcterms:modified>2007-11-04T09:08:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Flash(AS)操纵XML]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420078793019528</link>
    <description><![CDATA[<div>以前一直以为AS和JS一样,现在看来还是有很多区别的.而且用起来比JS有意思.<BR>&nbsp;&nbsp;&nbsp;&nbsp;有了操纵XML的方法,就可以轻易的和后台的数据做交互了.<BR>&nbsp;&nbsp;&nbsp;&nbsp;在Flash中调用xml文档需要用到XML类和XMLNode类中的一些方法和属性。这里我们就不需要用到那么多。把用到的方法和属性列出来：XML类：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML.ignoreWhite;//处理xml文档中的空白,设为true时,忽略空白,默认值为false.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML.load("xml文档的地址");//加载指定的xml文档.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML.(success:Boolean){};//成功加载了xml文档时调用.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML构造函数.<BR>XMLNode类：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLNode.attributes;//用来指定xml文档的属性.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLNode.childNodes;//返回指定xml文档对象的子级的数组.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLNode.firstChild;//引用父级节点的子级列表中的第一个子级.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLNode.nodeValue;//返回XML对象的节点值.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLNode.nodeName;//XML&nbsp;对象的节点名称<BR><B><WBR>开始实验：</B><WBR><BR>首先说明：在xml声明处加上encoding="gb2312"，使用gb2312编码；Flash中如果有中文需要在加载代码前面加上System.useCodepage&nbsp;=&nbsp;true；使用系统编码，防止乱码。<BR>实验1：<BR>一个简单的实验，把xml文档中的节点在Flash输出来。新建一个xml文档，在记事本输入下面的代码。保存为&nbsp;xml-001.xml&nbsp;。<BR>&lt;?xml&nbsp;version="1.0"?&gt;<BR>&lt;!--xml-001.xml--&gt;<BR>&lt;firstNode&nbsp;name="1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.1"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.2"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.3"&nbsp;/&gt;<BR>&lt;/firstNode&gt;<BR>上面是一个简单的xml文档，结构是一个顶层节点中嵌套三个子级节点。<BR>现在在Flash中如何读出来呢？来看操作：打开Flash，新建一个Flash文档，保存到刚才的xml文档中的目录中，命名&nbsp;xml-001.fla。在第一帧输入下面代码：<BR>//xml-001.fla.<BR>//实例化一个xml对象.<BR>var&nbsp;myxml:XML&nbsp;=&nbsp;new&nbsp;XML();<BR>//分析时忽略xml文档中的空格.<BR>myxml.ignoreWhite&nbsp;=&nbsp;true;<BR>//加载xml-001.xml文档.<BR>myxml.load("xml-001.xml");<BR>//调用XML.onLoad事件.<BR>myxml.onLoad&nbsp;=&nbsp;function(success:Boolean)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//如果加载成功,success=true;否则success=false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(success)&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace("加载成功!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//输出顶层节点的节点名和顶层节点中属性name的值.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(myxml.firstChild.nodeName+":"+myxml.firstChild.attributes.name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//用一个数组来引用顶层节点中子级节点的数组.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;child_arr:Array&nbsp;=&nbsp;myxml.firstChild.childNodes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//用嵌套for语句遍历出xml文档中的所有数据.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这个for遍历的是顶层节点下的子级节点.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&lt;child_arr.length;&nbsp;i++)&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//输出顶层节点下的子级节点的节点名和顶层节点下的子级节点中属性name的值.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(child_arr[i].nodeName+":"+child_arr[i].attributes.name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace("加载失败!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>};<BR>实验2：<BR>现在做的是把一个多层嵌套节点的xml文档在Flash中输出来。新建一个xml文档，在记事本中输入下面的代码，然后保存为&nbsp;xml-002.xml。<BR>&lt;?xml&nbsp;version="1.0"?&gt;<BR>&lt;!--xml-002.xml--&gt;<BR>&lt;firstNode&nbsp;name="1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.1"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.1.1"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.1.2"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.1.3"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/childNode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.2"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.2.1"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.2.2"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.2.3"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/childNode&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;childNode&nbsp;name="1.3"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.3.1"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.3.2"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Node&nbsp;name="1.3.3"&nbsp;/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/childNode&gt;<BR>&lt;/firstNode&gt;<BR>上面是一个多层嵌套节点的xml文档，结构是一个顶层节点中，嵌套3个子级节点，3个子级节点分别嵌套3个子级节点。现在又应该怎样在Flash中读出来呢？其实原理跟上面一样，在for中嵌套一个for就可以了。</div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420078793019528</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420078793019528</guid>
    <pubDate>Fri, 7 Sep 2007 21:30:19 +0800</pubDate>
    <dcterms:modified>2007-09-07T21:30:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[IE与fireFox  CSS 编写区别收集（一） ]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200761103457897</link>
    <description><![CDATA[<div><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>&nbsp;&nbsp;&nbsp; &nbsp;前天做了一个网站，用div+css布局来完成,但是可惜在firefox中浏览器中全部出错，才发现原来IE 与FIREFOX对于CSS的解释是不同的，现在收开始慢慢收集和注意这些问题。</STRONG></FONT></P>
<P>&nbsp;&nbsp;&nbsp; &nbsp;对于div，table等的border属性，fireFox不把border宽度计入width中，而IE则是包括在width中的。</P>
<P>&nbsp;&nbsp;&nbsp; 对于顶部高度，最好用padding-top,而不要用margin-top，因为如果你要设置div中的子div的顶部属性时，对于fireFox当设置magin-top时它会设置该div的父div的顶部高度，而不是该子div的。&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp; FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行</P>
<P>&nbsp;&nbsp;&nbsp; FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中</P>
<P>&nbsp;&nbsp;&nbsp; FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width</P>
<P>&nbsp;&nbsp;&nbsp; FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式</P>
<P>&nbsp;&nbsp;&nbsp; div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行</P>
<P>&nbsp;&nbsp;&nbsp; cursor: pointer 可以同时在 IE FF 中显示游标手指状， hand 仅 IE 可以</P>
<P>&nbsp;&nbsp;&nbsp; FF: 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格</P>
<P>&nbsp;&nbsp;&nbsp; XHTML+CSS兼容性解决方案小集<BR>&nbsp;&nbsp;&nbsp; 使用XHTML＋CSS构架好处不少，但也确实存在一些问题，不论是因为使用不熟练还是思路不清晰，我就先把一些我遇到的问题写在下面，省的大家四处找^^</P>
<P>&nbsp;&nbsp;&nbsp; 1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法：</P>
<P>&nbsp;&nbsp;&nbsp; div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样：</P>
<P>&nbsp;&nbsp;&nbsp; div{maring:30px;margin:28px}重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important;</P>
<P>&nbsp;&nbsp;&nbsp; 2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)- 10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改</P>
<P>div{width:300px!important;width&nbsp; /**/:340px;margin:0&nbsp; 10px&nbsp; 0&nbsp; 10px}，关于这个/**/是什么我也不太明白，只知道IE5和firefox都支持但IE6不支持，如果有人理解的话，请告诉我一声，谢了！：）</P>
<P>3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义</P>
<P>ul{margin:0;padding:0;}就能解决大部分问题</P>
<P>4.关于脚本，在xhtml1.1中不支持language属性，只需要把代码改为</P>
<P>&lt;script&nbsp; type="text/javascript"&gt;就可以了&nbsp;</P>
<P>OK,that's all, 都是在网上收集的，可能有点零乱</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200761103457897</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200761103457897</guid>
    <pubDate>Wed, 11 Jul 2007 12:34:57 +0800</pubDate>
    <dcterms:modified>2007-07-11T12:52:03+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[css 经典应用]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420076792543860</link>
    <description><![CDATA[<div>　前天晚上弄到凌晨两点，终于用div完成了一个网站的布局，虽然客户在这方面没有要求，但是我还是尽量用Ｗ３C标准方式来做，虽然辛苦一些，但是相信机会总是会给有准备的人，多学一些东西，为下一份工作做准备。学这种布局的时候也学到了很多以前不知道的ＣＳＳ妙用，写出来与大家共享。 <BR><BR>　　<B><WBR>一.用css控制文字长度。</B><WBR> <BR>　　这是做程序经常要用到的一个功能，特别是首页新闻列表显示的时候，为了美观，通常不希望换行，所以采用这种方式，以前的解决方式是用程序来控制，如.net里面用subString()方法来截取字符串，然后在后面加上"..."，这样做不仅麻烦，而且对英文的控制特别不方便，因为不同的英文字母所占的宽度不同，所以不是很容易控制这个宽度。一般都是采取保守的方法。对页面的美观有不好的影响，而现在用ＣＳＳ就可以很简单的实现这种效果，下面我写出主要的相关代码: <BR><WBR><BR>#example1 <BR>{ <BR>overflow:&nbsp;&nbsp; hidden;&nbsp;&nbsp; <BR>text-overflow:&nbsp;&nbsp; ellipsis;&nbsp;&nbsp; <BR>width:&nbsp;&nbsp; 150px <BR>} <BR>&lt;div&nbsp;&nbsp; &gt;&nbsp;&nbsp; <BR>&nbsp; &lt;nobr&gt;这行文字如果超处了150px的宽度，它不会换行，后面自动有省略号&lt;/nobr&gt;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; &lt;/div&gt;&nbsp;&nbsp; <BR>&nbsp; Ok,就这样就行了，比用程序控制简单多了吧？而且，不用考虑里面有英文字母或者数字的问题！\ <BR><BR>&nbsp;&nbsp;&nbsp; <B><WBR>　二.用css控制显示图片的某一部分</B><WBR> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这台万恶的破电脑，我快要写完了，居然突然死机。又要重写。这个功能也是非常实用的一个功能，原理和上面文字的控制差不多，经常碰到在一个固定的方框内显示图片的情况，一般的做法是把图片强制控制在某一尺寸，而从后台添加的图片可能与方框的尺寸不统一,使得图片变形,可能一个窈窕淑女的图片放在那里就被硬拉成了一个肥婆,还有锯齿,看不清楚.而且,个人觉得影响一个网站的档次的往往就是这些细节,网 <BR>站的版式设计的再好再大气,如果这些地方没做好,会立即觉得这个网站是个不入流的小网站. <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然,解决这个问题不是只能用css控制,可以用程序自动按尺寸生成一张缩略图,这样既美观，又能减少页面的大小，但是这种方法需要用程序做I/O操作，有些网站的空间不一定支持，而且这个程序也十分的复杂。下面是用css方式处理的，可以看看： <BR>div { <BR>&nbsp;&nbsp; overflow: hidden; <BR>&nbsp;&nbsp; width: 60px; <BR>&nbsp;&nbsp; height: 70px; <BR>} <BR>img { <BR>&nbsp;&nbsp; margin: -80px 0 0 -200px; <BR>} <BR>--&gt; <BR>&lt;/style&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;div&gt;&lt;img src="图片地址"&gt;&lt;/div&gt; <BR>&nbsp;&nbsp; ok,完成，不管图片有多大，它都只会显示宽60px 高70px 这么一小部分，其余的部分自动遮盖隐藏 <BR>&nbsp;&nbsp; 而下面那段 margin: -80px 0 0 -200px 代码，是控制图片从哪里开始显示。 <BR>&nbsp;&nbsp; 今天先写到这里，还有一些好的方法，以后再慢慢更新。 <BR></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420076792543860</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420076792543860</guid>
    <pubDate>Sat, 7 Jul 2007 09:25:43 +0800</pubDate>
    <dcterms:modified>2007-07-07T09:26:46+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[终于W3C了]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420076612212663</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp; 平时花一个多小时搞定的事情,这次花了4个小时才做完,可能是刚用这种布局模式还不熟炼.</P>
<P>&nbsp;&nbsp;&nbsp; 而且结果在FIREFOX里面无法正常显示.看来有待提高啊.</P>
<P>&nbsp;&nbsp;&nbsp; 下阶段的主要目标是用DIV+CSS的前提下关注网站的兼容性.</P>
<P>&nbsp;</P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420076612212663</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420076612212663</guid>
    <pubDate>Sat, 7 Jul 2007 09:24:30 +0800</pubDate>
    <dcterms:modified>2007-07-07T09:24:30+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[7条有益的涉世忠告]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200752372219113</link>
    <description><![CDATA[<div><P><FONT style="BACKGROUND-COLOR: #008000" color=#ffffff><STRONG>有时候总需要一些东西来提醒自己.</STRONG></FONT></P>
<P>1. 如果你不喜欢现在的工作，要么辞职不干，要么就闭嘴不言。 <BR>初出茅庐，往往眼高手低，心高气傲，大事做不了，小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞，不带伞又怕淋雨，处处表现出不满的情绪。记住，不做则已，要做就要做好。 <BR><BR>2. 每个人都有孤独的时候。 <BR>要学会忍受孤独，这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了，到了一个陌生的环境，面对形形色色的人和事，一下子不知所措起来，有时连一个可以倾心说话的地方也没有。这时，千万别浮躁，学会静心，学会忍受孤独。在孤独中思考，在思考中成熟，在成熟中升华。不要因为寂寞而乱了方寸，而去做无聊无益的事情，白白浪费了宝贵的时间。 <BR><BR>3. 走运时要做好倒霉的准备。 <BR>有一天，一只狐狸走到一个葡萄园外，看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着，无法进去。于是它一狠心绝食三日，减肥之后，终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时，发觉自己吃得太饱，怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。饱带干粮，晴带雨伞，点滴积累，水到渠成。有的东西今天似乎一文不值，但有朝一日也许就会身价百倍。 <BR><BR>4. 不要像玻璃那样脆弱。 <BR>有的人眼睛总盯着自己，所以长不高看不远；总是喜欢怨天尤人，也使别人无比厌烦。没有苦中苦，哪来甜中甜？不要像玻璃那样脆弱，而应像水晶一样透明，太阳一样辉煌，腊梅一样坚强。既然睁开眼睛享受风的清凉，就不要埋怨风中细小的沙粒。 <BR><BR><BR><BR>5. 机会从不会“失掉”，你失掉了，自有别人会得到。 <BR>不要凡事在天，守株待兔，更不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创造机会的人而言的。也许，你正为失去一个机会而懊悔、埋怨的时候，机会正被你对面那个同样的“倒霉鬼”给抓住了。没有机会，就要创造机会，有了机会，就要巧妙地抓住。 <BR><BR>6. 若电话老是不响，你该打出去。 <BR>很多时候，电话会给你带来意想不到的收获，它不是花瓶，仅仅成为一种摆设。交了新朋友，别忘了老朋友，朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑，往往助你的事业更上一个台阶。 <BR><BR>7. 千万不要因为自己已经到了结婚年龄而草率结婚。 <BR>想结婚，就要找一个能和你心心相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱，不要因为恋爱而影响工作和事业，更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200752372219113</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200752372219113</guid>
    <pubDate>Sat, 23 Jun 2007 07:22:19 +0800</pubDate>
    <dcterms:modified>2007-06-23T07:22:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[严格要求]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420075101257981</link>
    <description><![CDATA[<div><P>　　以后的工作中要严格要求自己，不管客户多么好糊弄，都坚持把事情做完美，坚持使用div+css布局,坚持遵守w3c标准，尽量考虑浏览器的兼容性。</P>
<P>&nbsp;&nbsp;&nbsp; 最近一段时间的目标:熟练使用XHTML，提高div+css布局能力，进一步了解ajax，为以后的工作做准备。</P>
<P>&nbsp;&nbsp;&nbsp; 机会总是给有准备的人。</P>
<P>&nbsp;&nbsp;&nbsp; 学习w3c标准的一个不错的网站：<A href="http://www.w3cn.org/">http://www.w3cn.org/</A></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420075101257981</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420075101257981</guid>
    <pubDate>Sun, 10 Jun 2007 13:02:57 +0800</pubDate>
    <dcterms:modified>2007-06-10T13:04:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[企业网站常用中英文对照表]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200754104832995</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>做网站，总是会遇到用英文修饰一下的时候，这里收集了一些企业网站常用的中英文对照表，与大家共享。</STRONG></FONT></P>
<P style="TEXT-INDENT: 2em">网站导航 site map </P>
<P style="TEXT-INDENT: 2em">公司简介 PROFILE or COMPANY Profile or Company </P>
<P style="TEXT-INDENT: 2em">公司设备 EQUIPMENT Equipment </P>
<P style="TEXT-INDENT: 2em">公司荣誉 GLORIES Glories </P>
<P style="TEXT-INDENT: 2em">企业文化 CULTURE Culture </P>
<P style="TEXT-INDENT: 2em">产品展示 PRODUCT Product </P>
<P style="TEXT-INDENT: 2em">资质认证 quality certification </P>
<P style="TEXT-INDENT: 2em">企业规模 SCALE Scale </P>
<P style="TEXT-INDENT: 2em">营销网络 Sales Network </P>
<P style="TEXT-INDENT: 2em">组织机构 orGANIZATION organization </P>
<P style="TEXT-INDENT: 2em">合作加盟 Join in Cooperation </P>
<P style="TEXT-INDENT: 2em">技术力量 TECHNOLOGY Technology </P>
<P style="TEXT-INDENT: 2em">经理致辞 Manager`s oration </P>
<P style="TEXT-INDENT: 2em">发展历程 Development history </P>
<P style="TEXT-INDENT: 2em">工程案例 Engineering Projects </P>
<P style="TEXT-INDENT: 2em">业务范围 Business Scope </P>
<P style="TEXT-INDENT: 2em">分支机构 Branches </P>
<P style="TEXT-INDENT: 2em">供求信息 Supply &amp; Demand </P>
<P style="TEXT-INDENT: 2em">经营理念 Operation Principle </P>
<P style="TEXT-INDENT: 2em">产品销售 SALES Sales </P>
<P style="TEXT-INDENT: 2em">联系我们 CONTACT US Contact Us </P>
<P style="TEXT-INDENT: 2em">信息发布 INFORMATION Information </P>
<P style="TEXT-INDENT: 2em">返回首页 HOMEPAGE Homepage </P>
<P style="TEXT-INDENT: 2em">产品定购 orDER order </P>
<P style="TEXT-INDENT: 2em">分类浏览 Browse by category </P>
<P style="TEXT-INDENT: 2em">电子商务 E-Business </P>
<P style="TEXT-INDENT: 2em">公司实力 STRENGTH Strength </P>
<P style="TEXT-INDENT: 2em">版权所有 Copy right </P>
<P style="TEXT-INDENT: 2em">友情连结 Hot link </P>
<P style="TEXT-INDENT: 2em">应用领域 Application Fields </P>
<P style="TEXT-INDENT: 2em">人力资源 Human Resource HR </P>
<P style="TEXT-INDENT: 2em">领导致辞 Leader`s oration </P>
<P style="TEXT-INDENT: 2em">企业资质 Enterprise qualification </P>
<P style="TEXT-INDENT: 2em">行业新闻 Trade news </P>
<P style="TEXT-INDENT: 2em">行业动态 Trends </P>
<P style="TEXT-INDENT: 2em">客户留言 Customer Message </P>
<P style="TEXT-INDENT: 2em">客户服务 Customer Service </P>
<P style="TEXT-INDENT: 2em">新闻动态 News &amp; Trends </P>
<P style="TEXT-INDENT: 2em">公司名称 Company Name </P>
<P style="TEXT-INDENT: 2em">销售热线 Sales Hot-line </P>
<P style="TEXT-INDENT: 2em">联系人 Contact Person </P>
<P style="TEXT-INDENT: 2em">您的要求 Your requirements </P>
<P style="TEXT-INDENT: 2em">建设中 In construction </P>
<P style="TEXT-INDENT: 2em">证书 CERTIFICATE Certificate </P>
<P style="TEXT-INDENT: 2em">地址 ADD Add </P>
<P style="TEXT-INDENT: 2em">邮编 POSTAL CODE Zipcode </P>
<P style="TEXT-INDENT: 2em">电话 TEL Tel </P>
<P style="TEXT-INDENT: 2em">传真 FAX Fax </P>
<P style="TEXT-INDENT: 2em">产品名称 Product Name </P>
<P style="TEXT-INDENT: 2em">产品说明 DESCRIPTION Description </P>
<P style="TEXT-INDENT: 2em">价格 Price </P>
<P style="TEXT-INDENT: 2em">品牌 Brand </P>
<P style="TEXT-INDENT: 2em">规格 Specification </P>
<P style="TEXT-INDENT: 2em">尺寸 Size </P>
<P style="TEXT-INDENT: 2em">生产厂家 MANUFACUTURER Manufacturer </P>
<P style="TEXT-INDENT: 2em">型号 Model </P>
<P style="TEXT-INDENT: 2em">产品标号 Item No. </P>
<P style="TEXT-INDENT: 2em">技术指标 Technique Data </P>
<P style="TEXT-INDENT: 2em">产品描述 Description </P>
<P style="TEXT-INDENT: 2em">产地 Production Place </P>
<P style="TEXT-INDENT: 2em">销售信息 Sales Information </P>
<P style="TEXT-INDENT: 2em">用途 Application </P>
<P style="TEXT-INDENT: 2em">论坛 Forum </P>
<P style="TEXT-INDENT: 2em">在线订购 On-line order </P>
<P style="TEXT-INDENT: 2em">招商 Enterprise-establishing </P>
<P style="TEXT-INDENT: 2em">招标 Bid inviting </P>
<P style="TEXT-INDENT: 2em">综述 General </P>
<P style="TEXT-INDENT: 2em">业绩 Achievements </P>
<P style="TEXT-INDENT: 2em">招聘 Join Us </P>
<P style="TEXT-INDENT: 2em">求贤纳士 Join Us </P>
<P style="TEXT-INDENT: 2em">大事 Great Event </P>
<P style="TEXT-INDENT: 2em">动态 Trends </P>
<P style="TEXT-INDENT: 2em">服务 Service </P>
<P style="TEXT-INDENT: 2em">投资 Investment </P>
<P style="TEXT-INDENT: 2em">行业 Industry </P>
<P style="TEXT-INDENT: 2em">规划 Programming </P>
<P style="TEXT-INDENT: 2em">环境 Environment </P>
<P style="TEXT-INDENT: 2em">发送 Delivery </P>
<P style="TEXT-INDENT: 2em">提交 Submit </P>
<P style="TEXT-INDENT: 2em">重写 Reset </P>
<P style="TEXT-INDENT: 2em">登录 Enter </P>
<P style="TEXT-INDENT: 2em">注册 Login </P>
<P style="TEXT-INDENT: 2em">中国企业网技术支持 Powered by ce.net.cn </P>
<P style="TEXT-INDENT: 2em">社区 Community </P>
<P style="TEXT-INDENT: 2em">业务介绍 Business introduction </P>
<P style="TEXT-INDENT: 2em">在线调查 Online inquiry Inquiry </P>
<P style="TEXT-INDENT: 2em">下载中心 Download </P>
<P style="TEXT-INDENT: 2em">会员登陆 Member Entrance </P>
<P style="TEXT-INDENT: 2em">意见反馈 Feedback </P>
<P style="TEXT-INDENT: 2em">常见问题 FAQ </P>
<P style="TEXT-INDENT: 2em">中心概况 General Profile </P>
<P style="TEXT-INDENT: 2em">教育培训 Education &amp; Training </P>
<P style="TEXT-INDENT: 2em">游乐园 amusement park </P>
<P style="TEXT-INDENT: 2em">在线交流 Online communication </P>
<P style="TEXT-INDENT: 2em">专题报道 Special report</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200754104832995</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200754104832995</guid>
    <pubDate>Mon, 4 Jun 2007 10:48:32 +0800</pubDate>
    <dcterms:modified>2007-06-04T10:48:32+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[找工作]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/13075542007430104148669</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp; 来上海三天了,来之前还有些担心自己找不到理想的工作,没想到会这么顺利。已经有两家公司向我亮了绿灯。</P>
<P>　　两家公司都算不错，一个是companycn.com 另一个是cars.com.cn;后面一个要前景要好一些，已经获得了2k500w美元的风投,准备明天底上市了,其实心里还是想到这家公司有所作为的.面试一开始也很顺利,一面二面都是技术层面上的,没什么大问题就通过了,三面的是公司的人事经理,只肯给我开3000,税后只2800,也许是因为有一家公司已经通过了,我就狂妄了起来<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face32.gif">,说了句也许我会抱撼终身的话,"如果是税后3k就打电话通知我来上班,否则就算了,3K是我的心理关口"。呵呵（主要是另一个公司开到了4k5,落差太大了）说不定因为这句话与这家公司就这么擦肩而过了哦！</P>
<P>　　看来鱼与熊掌不能兼得啊！</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/13075542007430104148669</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/13075542007430104148669</guid>
    <pubDate>Wed, 30 May 2007 22:41:48 +0800</pubDate>
    <dcterms:modified>2007-05-30T22:41:48+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[初到上海]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/130755420074298263433</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp; 坐了15个小时的火车,终于到了上海.</P>
<P>&nbsp;&nbsp; 住的地方算是有了,要感谢kerry师兄啊,名字都和我这么像.</P>
<P>&nbsp;&nbsp; 开始忙着找工作了哦,祝自己顺利找到好工作吧<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face5.gif"></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/130755420074298263433</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/130755420074298263433</guid>
    <pubDate>Tue, 29 May 2007 08:26:34 +0800</pubDate>
    <dcterms:modified>2007-05-29T08:26:34+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[随便写写]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200741492122723</link>
    <description><![CDATA[<div><P>　　</P>
<P style="TEXT-INDENT: 2em"><A href="http://img.blog.163.com/photo/hOqCXgDem6GnVI9FQLao_g==/440789813529846980.jpg"><IMG src="http://img.blog.163.com/photo/hOqCXgDem6GnVI9FQLao_g==/440789813529846980.jpg" border=0></A>　　</P>
<P style="TEXT-INDENT: 2em">有好长时间没在这写点什么了，主要是因为４月辞职之后，一直没有接触到什么新知识。</P>
<P>　　五一和ＧＦ一起出去玩了一次，先看西湖，后看东方明珠电视塔，玩的到是很尽兴。第一次出去旅游，还是靠自己挣的钱，心里说不出的惬意啊。</P>
<P>　　还有１个月的时间就要毕业了，四年的大学生活也就此结束。有时候觉得生活的压力好大，还是待在学校舒服。毕业之后想到上海去闯闯，但是说实话，心里很没底哦，不知道能不能顺利的找到理想的工作。</P>
<P>&nbsp;&nbsp;&nbsp;不说了，发几张照片吧</P>
<P><A href="http://img.blog.163.com/photo/hzHNVvWYvLTMQyiOU_7voQ==/440789813529846978.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/hzHNVvWYvLTMQyiOU_7voQ==/440789813529846978.jpg"></A></P>
<P>杭州国际动漫展上的cosplay</P>
<P><A href="http://img.blog.163.com/photo/FCLAj2VgKGkWb9cy9b5bdw==/435723263949057622.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/FCLAj2VgKGkWb9cy9b5bdw==/435723263949057622.jpg"></A></P>
<P>西湖边上</P>
<P><A href="http://img.blog.163.com/photo/kgMIfOSlNkPOEMX9H1ziqw==/435723263949057623.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/kgMIfOSlNkPOEMX9H1ziqw==/435723263949057623.jpg"></A></P>
<P><A href="http://img.blog.163.com/photo/J29vpZDk5VZHdC2dXYJLTA==/429812289438133078.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/J29vpZDk5VZHdC2dXYJLTA==/429812289438133078.jpg"></A></P>
<P>传说中的雷锋塔</P>
<P><A href="http://img.blog.163.com/photo/I5GJyZRlMUZyqviD891n7Q==/440789813529846979.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/I5GJyZRlMUZyqviD891n7Q==/440789813529846979.jpg"></A></P>
<P>西湖之颠</P>
<P><A href="http://img.blog.163.com/photo/hOqCXgDem6GnVI9FQLao_g==/440789813529846980.jpg" target=_blank></A><A href="http://img.blog.163.com/photo/AiLz8yKaU0hrwaMEduoGgA==/435723263949057624.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/AiLz8yKaU0hrwaMEduoGgA==/435723263949057624.jpg"></A><A href="http://img.blog.163.com/photo/wBLkequYVlhux2gQryDbWw==/429812289438133079.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/wBLkequYVlhux2gQryDbWw==/429812289438133079.jpg"></A></P>
<P><A href="http://img.blog.163.com/photo/_99EHKcnuleMwO-_FHmrag==/445293413157223487.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/_99EHKcnuleMwO-_FHmrag==/445293413157223487.jpg"></A><A href="http://img.blog.163.com/photo/pG4oNcCBo0dSsObhxuH7hw==/429812289438133083.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/pG4oNcCBo0dSsObhxuH7hw==/429812289438133083.jpg"></A><A href="http://img.blog.163.com/photo/nPBLrrgue_Y-jOsI4RAzMg==/440789813529846985.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/nPBLrrgue_Y-jOsI4RAzMg==/440789813529846985.jpg"></A><A href="http://img.blog.163.com/photo/EeO8ozsQ1YJ9tX6pBaWe6Q==/445293413157223488.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/EeO8ozsQ1YJ9tX6pBaWe6Q==/445293413157223488.jpg"></A><A href="http://img.blog.163.com/photo/0I2cqbl4MXq_I9A7xoFJNg==/440789813529846986.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/0I2cqbl4MXq_I9A7xoFJNg==/440789813529846986.jpg"></A><A href="http://img.blog.163.com/photo/C8fTFCYw4iEsVhQwn6SRhw==/429812289438133084.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/C8fTFCYw4iEsVhQwn6SRhw==/429812289438133084.jpg"></A></P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200741492122723</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200741492122723</guid>
    <pubDate>Mon, 14 May 2007 09:21:22 +0800</pubDate>
    <dcterms:modified>2007-05-14T09:47:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ASP.NET中如何调用存储过程]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/13075542007228115656594</link>
    <description><![CDATA[<div><P>用ASP.NET与SQL SERVER可是缘份最好了，稍大的程序一般第一先考虑的是SQL SERVER，只是一些很考虑经济的才使用ACCESS等了。用SQL SERVER，为了使数据库的效率更好，一般都会才取存储过程，因存储过程执行速度快，并且可以实现一些高级的查询等功能。比如传入一些数据参数，但执行的SQL过程可能不同等。 </P>
<P>　　下面就来个例子，建立一新的角色，要求角色的名字不能重复，以下是一存储过程。 　　</P><PRE ><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>CREATE PROCEDURE sp_AccountRole_Create</STRONG></FONT><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>@CategoryID int,<BR>@RoleName nvarchar(10),<BR>@Description nvarchar(50),<BR>@RoleID int output<BR>AS<BR>    DECLARE @Count int</STRONG></FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>    -- 查找是否有相同名称的记录<BR>    SELECT @Count = Count(RoleID) FROM Account_Role WHERE<BR>        RoleName = @RoleName</STRONG></FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>    IF @Count = 0</STRONG></FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>        INSERT INTO Account_Role <BR>        (CategoryID, RoleName, Description) valueS<BR>        (@CategoryID, @RoleName, @Description)</STRONG></FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>        SET @RoleID = @@IDENTITY</STRONG></FONT></P><P><FONT style="BACKGROUND-COLOR: #00ff00"><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>        RETURN 1<BR>GO</STRONG></FONT><BR></FONT></P></PRE>
<P>　　执行存储过程的C#过程： 　　</P><PRE ><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff>SqlConnection DbConnection = new SqlConnection(mConnectionString);<BR>SqlCommand command = new SqlCommand( "sp_AccountRole_Create", DbConnection );<BR>DbConnection.Open(connectString);<BR>// 废置SqlCommand的属性为存储过程<BR>command.CommandType = CommandType.StoredProcedure;</FONT><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff>command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);<BR>command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);<BR>command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);<BR>command.Parameters.Add("@RoleID", SqlDbType.Int, 4);<BR>// 返回值<BR>command.Parameters.Add("Returnvalue",<BR>            SqlDbType.Int,<BR>            4,        // Size<BR>            ParameterDirection.Returnvalue,<BR>            false,        // is nullable <BR>            0,        // byte precision<BR>            0,        // byte scale<BR>            string.Empty,<BR>            DataRowVersion.Default,<BR>            null );</FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff>command.parameters["@CategoryID"].value = permission.CategoryID;<BR>command.parameters["@RoleName"].value = permission.PermissionName;<BR>command.parameters["@Description"].value = permission.Description;<BR>// 可以返回新的ID值<BR>command.parameters["@RoleID"].Direction = ParameterDirection.Output;</FONT></P><P><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff>int rowsAffected = command.ExecuteNonQuery();<BR>int result = command.parameters["Returnvalue"].value;<BR>int newID = command.parameters["@RoleID"].value;<BR></FONT></P></PRE>
<P>　　功能挺强的吧，可以得到三个值，分别是行影响值，存储过程返回值，新的ID值。</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/13075542007228115656594</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/13075542007228115656594</guid>
    <pubDate>Wed, 28 Mar 2007 11:56:56 +0800</pubDate>
    <dcterms:modified>2007-03-28T11:56:56+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[30岁前的男人，需要完成的事]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200721905117473</link>
    <description><![CDATA[<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,事业永远第一 
<P style="TEXT-INDENT: 2em">　　虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.</P>
<P style="TEXT-INDENT: 2em">　　2,别把钱看得太重 </P>
<P style="TEXT-INDENT: 2em">　　不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程,社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少.</P>
<P style="TEXT-INDENT: 2em">　　3,学会体谅父母 </P>
<P style="TEXT-INDENT: 2em">　　别嫌他们唠叨,等你为人父了你就知道可怜天下父母心,在他们眼里你还是个孩子,但他们真的老了,现在得你哄他们开心了,也许只要你的一个电话,一点小礼物,就可以让他们安心,很容易做到. </P>
<P style="TEXT-INDENT: 2em">　　4,交上好朋友 </P>
<P style="TEXT-INDENT: 2em">　　朋友对你一生都影响重大,不要去结识太多酒肉朋友,至少得有一个能在关键时刻帮助你的朋友,如果遇到这么一个人,就好好把握,日后必定有用,不管他现在是富还是穷. </P>
<P style="TEXT-INDENT: 2em">　　5,别太相信爱情 </P>
<P style="TEXT-INDENT: 2em">　　心中要有爱,但请别说也别相信那些琼瑶阿姨小说里面的山盟海誓,世上本无永恒,重要的是责任,但女人心海底针,心变了,一切都成枉然,你要做的就是该出手时就出手,该放手时别犹豫.30岁之前的爱情不是假的,但只是大多数人都没有能真正把握好的能力,所以学会量力而行. </P>
<P style="TEXT-INDENT: 2em">　　6,别担心至今还保留初吻 </P>
<P style="TEXT-INDENT: 2em">　　爱情不在多而在精,别以为自己20多岁还没碰过女孩子就害怕自己永远找不到老婆.以后你会有很多机会认识女孩子,要知道这个社会虽然男人多于女人,但现实是女人其实比男人更担心这个问题.男人30一枝花,你在升值而不是贬值,成熟的爱情往往更美丽更长久,所以不要像疯狗一样看到女孩就想追,学会品味寂寞. </P>
<P style="TEXT-INDENT: 2em">　　7,不要沉迷于任何东西 </P>
<P style="TEXT-INDENT: 2em">　　所谓玩物而丧志,网络游戏是你在出校门之前玩的,你现在没有多余的时间和精力花费到这上面,否则你透支的东西以后都得偿还.一个人要有兴趣,爱好,但请分清楚轻重. </P>
<P style="TEXT-INDENT: 2em">　　8,年轻没有失败 </P>
<P style="TEXT-INDENT: 2em">　　不要遇到挫折就灰心,年轻人要时刻保持积极向上的态度.失败了,重来过;失去了，再争取别的。错过了，要分析，下次来,要把握；幼稚了，下次，成熟点。不要紧，会好的，哪怕到了极点，也不要放弃，相信一定可以挺过去。不要消极，会好的。曾经的错，过去了，总不能回味在过去。现在的，很好，累完了，很舒服。不要伤，总会有人在支撑你。 </P>
<P style="TEXT-INDENT: 2em">　　9,不要轻易崇拜或者鄙视一个人 </P>
<P style="TEXT-INDENT: 2em">　　人都有偶像,但请拥有你自己的个性.不要刻意去模仿一个人,因为你就是你,是唯一的,独一无二的,要有自信.也不要全盘否定一个人,每个人是有价值的,如果你不能理解他,也请学会接受. </P>
<P style="TEXT-INDENT: 2em">　　10,要有责任心. </P>
<P style="TEXT-INDENT: 2em">　　不管你曾经怎样,但请从现在开始做一个正直的人.男人要有责任心,无论是工作还是生活上,一个有责任心的人才能让别人有安全感,才能让别人觉得你是一个值得信赖的人.我们不要懦弱,但请不要伤害爱你的人和你爱的人,尤其是善良的女孩,因为这个世界善良的女孩不多了,即使不想拥有,但也请让她保持她美丽的心.</P>
<P style="TEXT-INDENT: 2em">　　11,男人的外貌并不重要. </P>
<P style="TEXT-INDENT: 2em">　　不要为自己的长相身高而过分担心,一个心地善良,为人正直的男人远比那些空有英俊相貌,挺拔身材但内心龌龊的男人要帅得多.如果有人以貌取人,请不要太在意,因为你不用去为一个低级趣味的人而难过.</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　12,学会保护身体 </P>
<P style="TEXT-INDENT: 2em">　　不要以为现在抽烟喝酒,熬夜通宵也没什么事.那是因为你的身体正处于你一生的黄金时段.30岁以后你就能明白力不从心这个词的意义了,身体是革命的本钱,没有好的身体什么也做不了,所以要尽量让自己过有规律的健康生活. </P>
<P style="TEXT-INDENT: 2em">　　13,别觉得一事无成. </P>
<P style="TEXT-INDENT: 2em">　　你现在还没有资格谈成功,当然如果你有千万资产的除外.一开始太固定的职业并不一定是好事,或许在不断的改行当中,你会学到更丰富的知识,而且可以挖掘出自己的潜能,找到最适合你的工作. </P>
<P style="TEXT-INDENT: 2em">　　14,请认真工作 </P>
<P style="TEXT-INDENT: 2em">　　即使你现在的工作再怎么无聊再怎么低级,也请你认真去对待,要知道任何成功人士都是从最小的事做起,或许你现在学不到多么了不起的知识,但起码你要学会良好的工作态度和工作方法,这对以后很重要. </P>
<P style="TEXT-INDENT: 2em">　　15,请认真对待感情. </P>
<P style="TEXT-INDENT: 2em">　　不要羡慕那些换女人像换鞋一样的花花公子,逢场作戏的爱情只是让你浪费时间浪费精力,一个人最痛苦的不是找不到爱人,而是心中没有了爱,当你把我爱你3个字变成你最容易说的一句话时,那么你在爱情的世界里已经很难找到真正的幸福了.爱情没有公平,总有一个人比对方付出得多,即使没有结果,也别觉得不值,因为你的付出不光是为了她,也是为了你自己的爱,为爱付出是很可贵的,赞自己一下. </P>
<P style="TEXT-INDENT: 2em">　　16.请留一点童心 </P>
<P style="TEXT-INDENT: 2em">　　在内心深处,哪怕只是一个很小的角落里,请保持一份童心,不是幼稚,但有的时候单纯一点会让你很快乐.所以不要太计较得失,生活本无完美.</P></div>]]></description>
	    <author><![CDATA[karry]]></author>
	    <comments>http://karrykai.blog.163.com/blog/static/1307554200721905117473</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://karrykai.blog.163.com/blog/static/1307554200721905117473</guid>
    <pubDate>Mon, 19 Mar 2007 12:51:17 +0800</pubDate>
    <dcterms:modified>2007-03-19T12:51:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[asp.net 生成随机验证码（图片）]]></title>	
    <link>http://karrykai.blog.163.com/blog/static/1307554200721434710164</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;在后台管理登录时，经常要用到验证码，我仔细整理了一个生成随机验证码图片的方法，与大家共享：</P>
<P>&nbsp;&nbsp;<FONT color=#ffffff> 新建<FONT style="BACKGROUND-COLOR: #99cc00"><STRONG>identifyingcode.aspx页面，前台不用管，在后台写下如下代码：</STRONG></FONT></FONT></P>
<P><FONT style="BACKGROUND-COLOR: white" color=#ffffff><FONT color=#000000>using System;<BR>using System.Data;<BR>using System.Configuration;<BR>using System.Collections;<BR>using System.Web;<BR>using System.Web.Security;<BR>using System.Web.UI;<BR>using System.Web.UI.WebControls;<BR>using System.Web.UI.WebControls.WebParts;<BR>using System.Web.UI.HtmlControls;<BR></FONT><FONT style="BACKGROUND-COLOR: #99cc00" color=#ffffff><STRONG>using System.Drawing;<BR>using System.Drawing.Imaging;<BR>using System.IO;</STRONG></FONT></FONT></P>
<P><FONT style="BACKGROUND-COLOR: white" color=#000000>public partial class identifyingcode : System.Web.UI.Page<BR>{<BR>&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string tmp = RndNum(4);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>&nbsp; HttpCookie a = new HttpCookie("ImageV", tmp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Cookies.Add(a);<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ValidateCode(tmp);<BR>&nbsp;&nbsp;&nbsp; }</FONT><FONT style="BACKGROUND-COLOR: white" color=#000000><BR>&nbsp;&nbsp;&nbsp; private void ValidateCode(string VNum)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bitmap Img = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics g = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MemoryStream ms = null;</FONT></P>
<P><FONT style="BACKGROUND-COLOR: white" color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int gheight = VNum.Length * 18;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Img = new Bitmap(gheight, 30);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g = Graphics.FromImage(Img);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT style="BACKGROUND-COLOR: #99cc00"><FONT color=#ffffff><STRONG>//背景颜色</STRONG></FONT> <BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.Clear(Color.White);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>//文字字体</STRONG> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Font f = new Font("Arial Black", 14);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>//文字颜色 <BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SolidBrush s = new SolidBrush(Color.YellowGreen);<BR>&nbsp;&nb