09 Dec 2009

使用SQL语句更改数据表的默认值

以前还真没这么干过,都是手工去掉约束,再添加的,今天一边google一边搞啊搞啊的,最终下面这个脚本可以用了

alter table dbo.SOTransaction
    alter column UnitCostWithoutTax decimal(10, 2not null

go

declare @name varchar(1000)
declare @tablename varchar(1000)
declare @fieldname varchar(1000)

set @tablename = ‘SOTransaction’;
set @fieldname = ‘UnitCostWithoutTax’;

select @name = b.name from syscolumns a inner join sysobjects b
    on b.id=a.cdefault
where
    a.id= object_id(@tablename)
    and a.name[email protected]fieldname
    and b.name like ‘DF%’
–print @name

exec(’ alter table SOTransaction drop constraint ‘ + @name);
go
alter table dbo.SOTransaction
    add constraint DF_SOTransaction_UnitCostWithoutTax default (0) for UnitCostWithoutTax

27 Oct 2009

在线编辑器的一个新选择。

今天lifesinger发布了淘宝编辑器,

可以在这里看到演示

介绍可以看这里,http://lifesinger.org/blog/2009/10/kissy-editor/

26 Jul 2009

拆箱记

大洋彼岸寄来了一个纸箱

哇,里面装了一个老外宅男

MVP奖杯

MVP证书

21 Jul 2009

Asp.Net发邮件,如何发送附件

使用如下代码可以发送附件

MailMessage mail = new MailMessage();
mail.To = ”[email protected]”;
mail.From = ”[email protected]”;
mail.Subject = ”this is a test email.“;
mail.Body = ”this is my test email body.“;
MailAttachment attachment = new MailAttachment( Server.MapPath( ”mailTest.txt” ) ); //create the attachment
mail.Attachments.Add( attachment );
SmtpMail.SmtpServer = ”localhost”; 
SmtpMail.Send( mail );

使用如下代码可以在用户上传附件后发生邮件:

if  (FileUpload1.HasFile)
{
    string  toAddress  =  ”[email protected]”;
    string  fromAddress  =  [email protected]  (2);
    string  mailServer  =  ”smtp.yourprovider.com”;

    MailMessage  myMailMessage  =  new  MailMessage();

    myMailMessage.To.Add(toAddress);     myMailMessage.From  =  new  MailAddress(fromAddress);     myMailMessage.Subject  =  ”Test  Message”;

    string  fileName  =  Path.GetFileName(FileUpload1.PostedFile.FileName);     Attachment  myAttachment  =                                     new  Attachment(FileUpload1.FileContent,  fileName);     myMailMessage.Attachments.Add(myAttachment);

    SmtpClient  mySmtpClient  =  new  SmtpClient(mailServer);

    mySmtpClient.Send(myMailMessage); }

21 Jul 2009

Asp.Net发邮件,如何发送附件

使用如下代码可以发送附件

MailMessage mail = new MailMessage();
mail.To = ”[email protected]”;
mail.From = ”[email protected]”;
mail.Subject = ”this is a test email.“;
mail.Body = ”this is my test email body.“;
MailAttachment attachment = new MailAttachment( Server.MapPath( ”mailTest.txt” ) ); //create the attachment
mail.Attachments.Add( attachment );
SmtpMail.SmtpServer = ”localhost”; 
SmtpMail.Send( mail );

使用如下代码可以在用户上传附件后发生邮件:

if  (FileUpload1.HasFile)
{
    string  toAddress  =  ”[email protected]”;
    string  fromAddress  =  [email protected]  (2);
    string  mailServer  =  ”smtp.yourprovider.com”;

    MailMessage  myMailMessage  =  new  MailMessage();

    myMailMessage.To.Add(toAddress);     myMailMessage.From  =  new  MailAddress(fromAddress);     myMailMessage.Subject  =  ”Test  Message”;

    string  fileName  =  Path.GetFileName(FileUpload1.PostedFile.FileName);     Attachment  myAttachment  =                                     new  Attachment(FileUpload1.FileContent,  fileName);     myMailMessage.Attachments.Add(myAttachment);

    SmtpClient  mySmtpClient  =  new  SmtpClient(mailServer);

    mySmtpClient.Send(myMailMessage); }

17 Jul 2009

知识死角,name相同的html element

今天在帮同事调程序时发现了这个死角
现象如下,没有任何输入的textarea提交到服务端后得到的值总是”,”
找了半天发现是因为页面上两个textarea的name相同,以前只知道页面上radio的name相同则是一个组,name相同的
的checkbox提交后是以逗号分隔值的,于是做了下面代码的试验,发现任何name相同的element提交到服务端都会得到逗号分隔的值,以前还不知道这个,汗

<%@ Page Language=“C#“ %>

<script runat=“server” languag=“c#”>
    string textboxValue = string.Empty;
    string radioValue = string.Empty;
    string checkboxValue = string.Empty;
    string selectValue = string.Empty;
    string textareaValue = string.Empty;
    void Page_Load(object obj , EventArgs args)
    {
        placeHolder.Visible = false;
        System.Web.HttpContext ctx = System.Web.HttpContext.Current;
        if(ctx.Request.HttpMethod == ”POST”)
        {
            placeHolder.Visible = true;
            textboxValue = ctx.Request.Form[“textbox”];
            radioValue = ctx.Request.Form[“radio”];
            checkboxValue = ctx.Request.Form[“checkbox”];
            selectValue = ctx.Request.Form[“select”];
            textareaValue = ctx.Request.Form[“textarea”];
        }
    }
</script>

<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=“http://www.w3.org/1999/xhtml" >
<head>
<style>
body, h1, h2, h3, h4, h5, h6, hr, p, ul, ol, li,pre,fieldset, lengend, button, input, textarea,{
    margin: 0;
    padding: 0;
}
body,button, input, select, textarea {
    font: 13px/1 Tahoma, Helvetica, Arial, ”\5b8b\4f53”, sans-serif;
}

#page{
    padding:10px 30px 10px 30px;
}
#s{
color:red;
}
input,select,textarea{
    clear:both;
    float:left;
    margin:5px;
}

pre {
    overflow: auto;
    border: 1px dotted #281;
    background-color: #eee;
    padding: 2px 20px 20px 10px;
}
fieldset{
    line-height:200%;
}

</style>
</head>
<body>

<div id=“page”>

<div id=“placeHolder” runat=“server”>    
            <string id=“s”>Post Data:</string>

<pre style=“max-height:30px;”>
textboxvalue:<%= textboxValue%>
radioValue:<%= radioValue%>
checkboxValue:<%= checkboxValue%>
selectValue:<%=selectValue%>
textareaValue:<%= textareaValue%></pre>

</div>

<form id=“aspnetForm” method=“post”>
                <fieldset>       
                  <legend>Test</legend>              
                <input type=“text” name=“textbox” value=“a”/> 
                <input type=“text” name=“textbox” value=“a”/>
                <input type=“text” name=“textbox” value=“a”/>
                <input type=“radio” name=“radio” value=“a” />
                <input type=“radio” name=“radio” value=“a” />
                <input type=“radio” name=“radio” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <textarea name=“textarea”>a</textarea>
                <textarea name=“textarea”>a</textarea>
                <textarea name=“textarea”>a</textarea>
                <input type=“submit” value=“Do PostBack” />
            </fieldset>
            </form>
    </div>

</body>
</html>

17 Jul 2009

知识死角,name相同的html element

今天在帮同事调程序时发现了这个死角
现象如下,没有任何输入的textarea提交到服务端后得到的值总是”,”
找了半天发现是因为页面上两个textarea的name相同,以前只知道页面上radio的name相同则是一个组,name相同的
的checkbox提交后是以逗号分隔值的,于是做了下面代码的试验,发现任何name相同的element提交到服务端都会得到逗号分隔的值,以前还不知道这个,汗

<%@ Page Language=“C#“ %>

<script runat=“server” languag=“c#”>
    string textboxValue = string.Empty;
    string radioValue = string.Empty;
    string checkboxValue = string.Empty;
    string selectValue = string.Empty;
    string textareaValue = string.Empty;
    void Page_Load(object obj , EventArgs args)
    {
        placeHolder.Visible = false;
        System.Web.HttpContext ctx = System.Web.HttpContext.Current;
        if(ctx.Request.HttpMethod == ”POST”)
        {
            placeHolder.Visible = true;
            textboxValue = ctx.Request.Form[“textbox”];
            radioValue = ctx.Request.Form[“radio”];
            checkboxValue = ctx.Request.Form[“checkbox”];
            selectValue = ctx.Request.Form[“select”];
            textareaValue = ctx.Request.Form[“textarea”];
        }
    }
</script>

<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=“http://www.w3.org/1999/xhtml" >
<head>
<style>
body, h1, h2, h3, h4, h5, h6, hr, p, ul, ol, li,pre,fieldset, lengend, button, input, textarea,{
    margin: 0;
    padding: 0;
}
body,button, input, select, textarea {
    font: 13px/1 Tahoma, Helvetica, Arial, ”\5b8b\4f53”, sans-serif;
}

#page{
    padding:10px 30px 10px 30px;
}
#s{
color:red;
}
input,select,textarea{
    clear:both;
    float:left;
    margin:5px;
}

pre {
    overflow: auto;
    border: 1px dotted #281;
    background-color: #eee;
    padding: 2px 20px 20px 10px;
}
fieldset{
    line-height:200%;
}

</style>
</head>
<body>

<div id=“page”>

<div id=“placeHolder” runat=“server”>    
            <string id=“s”>Post Data:</string>

<pre style=“max-height:30px;”>
textboxvalue:<%= textboxValue%>
radioValue:<%= radioValue%>
checkboxValue:<%= checkboxValue%>
selectValue:<%=selectValue%>
textareaValue:<%= textareaValue%></pre>

</div>

<form id=“aspnetForm” method=“post”>
                <fieldset>       
                  <legend>Test</legend>              
                <input type=“text” name=“textbox” value=“a”/> 
                <input type=“text” name=“textbox” value=“a”/>
                <input type=“text” name=“textbox” value=“a”/>
                <input type=“radio” name=“radio” value=“a” />
                <input type=“radio” name=“radio” value=“a” />
                <input type=“radio” name=“radio” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <input type=“checkbox” name=“checkbox” value=“a” checked=“checked” />
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <select name=“select”>
                                   <option value=“a”>a</option>
                </select>
                <textarea name=“textarea”>a</textarea>
                <textarea name=“textarea”>a</textarea>
                <textarea name=“textarea”>a</textarea>
                <input type=“submit” value=“Do PostBack” />
            </fieldset>
            </form>
    </div>

</body>
</html>

15 Jul 2009

C#中如何深度克隆一个对象?

如何深度克隆一个对象?

普通版:

        public static object CloneObject( object obj )
        {
            using ( MemoryStream memStream = new MemoryStream( ) )
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter( null ,
                     new StreamingContext( StreamingContextStates.Clone ) );
                binaryFormatter.Serialize( memStream , obj );
                memStream.Seek( 0 , SeekOrigin.Begin );
                return binaryFormatter.Deserialize( memStream );
            }
        }

泛型版:

public  static  T  Clone<T>(T  obj)
{
        T  ret  =  default(T);
        if  (obj  !=  null)
        {
                XmlSerializer  cloner  =  new  XmlSerializer(typeof(T));
                MemoryStream  stream  =  new  MemoryStream();
                cloner.Serialize(stream,  obj);
                stream.Seek(0,  SeekOrigin.Begin);
                ret  =  (T)cloner.Deserialize(stream);
        }
        return  ret;
}

15 Jul 2009

C#中如何深度克隆一个对象?

如何深度克隆一个对象?

普通版:

        public static object CloneObject( object obj )
        {
            using ( MemoryStream memStream = new MemoryStream( ) )
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter( null ,
                     new StreamingContext( StreamingContextStates.Clone ) );
                binaryFormatter.Serialize( memStream , obj );
                memStream.Seek( 0 , SeekOrigin.Begin );
                return binaryFormatter.Deserialize( memStream );
            }
        }

泛型版:

public  static  T  Clone<T>(T  obj)
{
        T  ret  =  default(T);
        if  (obj  !=  null)
        {
                XmlSerializer  cloner  =  new  XmlSerializer(typeof(T));
                MemoryStream  stream  =  new  MemoryStream();
                cloner.Serialize(stream,  obj);
                stream.Seek(0,  SeekOrigin.Begin);
                ret  =  (T)cloner.Deserialize(stream);
        }
        return  ret;
}

01 Dec 2008

把ASP.NET MVC的路由利用配置维护起来

配置大多就是文件配置或者数据库配置了


ref:


http://mnour.blogspot.com/2008/11/mvc-routing-using-custom-configuration.html


http://www.cnblogs.com/QLeelulu/archive/2008/11/24/1340212.html


http://www.iansuttle.com/blog/post/ASPNET-MVC-Store-Routes-in-the-Database.aspx


我觉得加上做webform时常用的PageAlias和BuildUrl会更好用些