虎克的博客

Enthusiasm Biogeography-Biodiversity Informatics-Data Sciences

ASP.NET调用存储过程示例代码

| Comments

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

namespace CNPC
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                string whereCondition = "name_string like '%" + txtName.Text.ToString() + "%'";


                string connString = "data source=.;initial catalog=northwind;integrated security=true";
                DataSet ds = new DataSet();
                SqlDataAdapter adapter = new SqlDataAdapter();
                SqlConnection conn = new SqlConnection(connString);
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                SqlCommand cmd = new SqlCommand("usp_SelectNamesDynamic", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@whereCondition", SqlDbType.NVarChar);
                cmd.Parameters["@whereCondition"].Value = whereCondition;
                
                cmd.ExecuteNonQuery();
                adapter.SelectCommand = cmd;

                if (ds != null)
                {
                    adapter.Fill(ds, "Names");
                }
                
                grdName.DataSource = ds;
                grdName.DataBind();

                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
    }
}

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/12/18/ASP.NET%E8%B0%83%E7%94%A8%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81/'>http://Apiaceae.github.io/blog/2009/12/18/ASP.NET%E8%B0%83%E7%94%A8%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

一些经典的吉他曲

| Comments

蒙古人

草原上升起不落的太阳

老人与海

天堂

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/12/13/%E4%B8%80%E4%BA%9B%E7%BB%8F%E5%85%B8%E7%9A%84%E5%90%89%E4%BB%96%E6%9B%B2/'>http://Apiaceae.github.io/blog/2009/12/13/%E4%B8%80%E4%BA%9B%E7%BB%8F%E5%85%B8%E7%9A%84%E5%90%89%E4%BB%96%E6%9B%B2/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

生物多样性信息学数据标准-Darwin Core

| Comments

过去的10年里,信息技术的发展(包括:大容量电子存储媒介、因特网、分布式数据库技术)和开放性数据共享政策(大范围的数字化工作、数据对公共普通用户的开放性使用)为生物多样性信息的产生、维持、传播和使用带来了革命性的发展(Bisby, 2000; Bisby et al., 2002; Causey et al., 2004; Edwards et al., 2000; Krishtalka and Humphrey, 2000; Krishtalka et al., 2002; Oliver et al., 2000; Smith et al., 2000),产生了生物多样性信息学(Biodiversity Informatics)这一非常活跃的研究领域,并且保持着相当乐观的发展前景(Godfray, 2002; Godfray, 2007; Godfray et al., 2007; Graham et al., 2004)。生物多样性信息学指利用IT技术,对生物有机体基础数据(Primary data)的管理、算法的探究、分析和解释,尤其是在物种水平上的应用(Berendsohn and Geoffroy, 2007; Johnson, 2007; Soberon and Peterson, 2004)。因此,它涉及到对信息的捕获、存储、提交、回溯和分析,它主要关注单个有机体、居群和分类群以及它们的相互关系。它的信息内容覆盖了系统学、进化生物学、居群生物学、行为科学,以及从传粉生物学到寄生病和植物社会学等的大生态等领域。目前生物多样性信息学最重要的研究和活动目标是为生物多样性和全球变化研究提供一个合理的信息管理的下层建筑。

对生物学数据的信息模型和标准的研究在过去几十年是一个非常重要的主题(Berendsohn, 1997; Le Renard, 2000; Pullan et al., 2000; Ytow et al., 2001; Zhong et al., 1996)。IUBS(International Union of Biological Sciences)分类学数据委员会有专门的任务和论坛来讨论相关的信息交换标准。但是,过去的数据标准实践和应用的失败表明,我们对这些问题的复制性缺乏足够的估计,需要更多专门的研究人员和相互地交流来解决它们(Berendsohn and Geoffroy, 2007)。

达尔文核心(Darwin Core:简称DwC)(纪力强 et al., 2005)是生物多样性信息学中目前应用最为广泛,也是非常重要的标准之一。它是一套用于描述生物有机体分布及其相关采集信息的规范。这个规范由一个预先定义的词汇集组成。其中包括了描述生物有机体的学名、分布的地点、标本采集事件(包括采集人、采集时间和地点)等信息。这个标准提出主要是促进不同研究机构和数据库间有效地交换生物有机体分布和相关的采集信息。

然而,由于这一标准所涉及到的生物学信息存在复杂性,并且在形成过程中中又常以不同形式的“修订版”或“扩展版”出现,从而使该标准出现多个版本并存,给我们认识和理解DwC,以及在实践中如何有效地应用带来困难。因此,本文的目是对DwC这个标准的来源、历史变化过程、内涵和实践应用进行较为详细的讨论,以期为从事生物多样性信息学及相关领域的研究人员提供一个参考。

一、 什么是Darwin Core?

DwC的提出是基于科学家和信息技术人员一个非常简单的想法。我们可以想象一下如下的情形。有两个研究组织通过数据库管理着同样一份采集的多个复份标本。这两个组织会在它们各自的数据库中存储非常相似或者几乎完全相同的信息,但是这些信息可能以不同的格式进行存储。以采集人为例:其中一个研究机构的数据库中给这个数据项定义取名为“Gatherer”,而另外一个研究机构的数据库则把同样的数据项处理为“Collector”(极端的情况是某些中文环境运行的数据库把该数据项处理为“Caijiren”)。当这种情况发生在成千上万的研究项目和数据库的时候,任何人都很难去处理这些数据库中的细微差别,我们也不难想象在数据交换和信息共享过程中将会面临的巨大困难。DwC提出的基本目的就是来解决这些相同数据项或信息内容在不同研究机构的数据库中应用不同表达方式的问题。

这些机构自身的数据库可能包括许多不同数据格式和类型的信息,以及为了满足机构管理所需要的特定信息内容。而DwC标准的价值在于它仅仅包括生物学数据库中最“核心”(Core)的信息成分,也就信息元素中共有和相同的内容,来促进这些研究机构间对“核心”生物学采集信息的交换。因为无论是一份动物标本还是一份植物标本,每一个自然历史采集都有它的采集地点、采集时间来反映这一生物体在一定时期的地理分布情况。每个采集都带有标签,可能是手写的,或打印的。它记载着这份采集特有的信息。尽管采集及其它们的标签千差万别,但是几乎所有的生物采集和观察数据在内容上都有共同点,能够通过一些类似或共有的指令在不同的数据集中进行搜集和回溯。DwC试图提供一些标识反映这些共同点,而不是考虑存储这些记录内容的具体形式。对这些标本所共有信息在数据库信息交换过程中表达方式的规范化和统一性就是DwC标准的具体内容。

通过以上的描述,我们对DwC的定义做如下的归纳:Darwin Core是设计用来促进数据库间有效交换生物有机体在自然界的分布信息的数据共享标准。这个标准是通过定义一系列表达特定数据信息的词汇(Concepts/Terms)来实现。它以分类群(Taxon)为最基本的信息单位。有机体的分布信息又体现在各种形式的数据上,例如:观察记录(Observation records),标本(Specimens)以及其它野外调查的样品(Living Collection)等。DwC所定义的这些词汇在一些计算机技术环境下,常常有被称为属性(Properties)、成分(Elements)、字段(Fields)或者类(Class)。在数据库环境下,这些词汇常常是与数据项一一对应。

因此DwC标准形成的基础就是任何自然历史采集和观察数据信息的共同属性,这个标准的目的就是为这些信息的共享和交换机制提供一个指南性原则。它提供的是一个关于数据概念的描述规范,支持针对原始数据的检索和集成,是描述自然历史标本和观察数据特性的最小集合(纪力强 et al., 2005)。

二、DwC的发展历史

DwC最初来源于美国国家自然基金资助的研究项目:生物学采集和分类学数据信息检索协议测试项目(An Experimental Z39.50 Information Retrieval Protocol Test Bed for Biological Collection and Taxonomic Data)。该项目的主要目的是示范在生物标本和权威物种数据信息化过程中采用相关数据标准的实际效果。从而使用户可以通过互联网查询多个标本馆的标本,促进分类学研究和对生物多样性基础数据的科普和研究应用。但是当时还没有使用Darwin Core这个数据项,而是使用的“Z39.50 profile“。后来,由Allen Allison于1998年在美国堪萨斯大学(University of Kansas)举办的ZBIG (Z39.50 Biology Implementers Group)会议上提出。也就是我们所说的DwC原型概念(prototypical Darwin Core)。这个会议上,科学家们讨论了Z39.50在自然历史采集数据中的信息成分问题,以及应用“Darwin Core Profile”和以前存在的都柏林核心元数据(Dublin Core Metadata:简称DC)在概念上和应用上的相似性。因此,DwC是基于都柏林核心元数据标准,它应该被看做是都柏林核心元数据标准在生物多样性信息应用上的扩展。但是它减少了在不同技术实现条件下,比如XML (eXtensible Markup Language),RDF(Resource Description Framework),或者是简单的CSV(Comma Separated Values)文本文件,数据项在语义上的耦合性。

此后,堪萨斯大学自然历史历史博物馆的生物多样性研究小组发起了物种分析者项目(Species Analyst project)。该项目的目标就是开发一些促进世界自然历史采集和观察信息共享的工具和标准。DwC比较完整的体系和概念正是在通过这个项目形成。

DwC正式向外发布的版本是与分布式信息检索协议项目(Distributed Generic Information Retrieval protocol: 简称DiGIR)(目前已被TDWG Access Protocol for Information Retrieval : 简称TAPIR替代)合作形成的,就是现在的DwC1.2。在DiGIR项目中,研究人员把DwC表达为XML模式(XML Schema)的形式,也就是我们后来所称的达尔文核心模式(Darwin Core Schema)。达尔文核心模式向使用者推荐了一个规范,可以用来组织自然历史标本和观察数据库。它也提供了一个从支持达尔文核心的信息服务器中获取数据内容、结构和格式的指南(纪力强 et al., 2005)。

最早正式使用DwC标准的生物多样性信息系统是UC Berkeley的哺乳动物网络信息系统项目(Mammal Networked Information System Project: 简称MaNIS)。MaNIS项目的研究人员在DwC1.2的基础上进行了改善,形成了后来的DwC1.21。在这个版本中已经包括了地理空间和标本管理扩展的部分,形成了后来所说的达尔文核心扩展(Darwin Core Extension)。

DwC的最新版本是DwC1.4。目前由生物多样性信息标准TDWG(Biodiversity Information Standards: TDWG)来维护和管理。该组织是专门致力于生物多样性信息标准的建立、推广和应用。并且有专门的网站和信息系统用于这些标准及其相关电子资源的管理。其中有专门的DwC任务组(Darwin Core Task Group),以及专门的网页(http://www.tdwg.org/standards/450/ )来记录该标准形成的过程,与它相关的电子资源、文件、用户的评论、对标准的修改意见等。DwC无论从开始的1.2版还是到现在的1.4版一直是被TDWG当做一个草案标准(Draft standard)来推行,这意味着专家们认为它尚不完全成熟,还需要在实践过程中不断的修正。可喜的是在经过将近10余年的讨论和不断完善后,DwC被TDWG在2009年10月9号批准为正式标准(表1)。

1. 达尔文核心的发展历史

Table 1. History of the Darwin Core

名称

Name

命名空间

Namespace

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/12/05/%E7%94%9F%E7%89%A9%E5%A4%9A%E6%A0%B7%E6%80%A7%E4%BF%A1%E6%81%AF%E5%AD%A6%E6%95%B0%E6%8D%AE%E6%A0%87%E5%87%86-Darwin+Core/'>http://Apiaceae.github.io/blog/2009/12/05/%E7%94%9F%E7%89%A9%E5%A4%9A%E6%A0%B7%E6%80%A7%E4%BF%A1%E6%81%AF%E5%AD%A6%E6%95%B0%E6%8D%AE%E6%A0%87%E5%87%86-Darwin+Core/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

在UBUNTU下自动安装rails运行环境

| Comments

if [ "$(whoami)" != "root" ]; then
echo "You need to be root to run this!"
exit 2
fi
VERSION="1.2"
REEV="http://rubyforge.org/frs/download.php/51100/ruby-enterprise-1.8.6-20090201.tar.gz"
REEF="ruby-enterprise-1.8.6-20090201.tar.gz"
REEFF=${REEF%".tar.gz"}
PASSENGER="2.1.2"
export PASSENGER
echo "#####################################"
echo "Welcome, let’s get this party rollin’"
echo "#####################################"
echo "Updating Aptitude"
apt-get update
echo "Installing build essentials"
apt-get install build-essential zlib1g-dev libssl-dev wget libreadline5-dev -y
echo "Installing GIT"
apt-get install -y git-core
echo "Installing apache"
apt-get install -y apache2
echo "Installing apache headers"
apt-get install -y apache2-prefork-dev
echo "Installing Ruby Enterprise from following url"
echo $REEV
wget $REEV
if [ -e $REEF ]
then
echo "File downloaded succesful"
else
echo "Error, file wasn’t downloaded!"
exit
fi
tar -zxvf $REEF
# possible options perhaps for checker
# –extra rails –no-tcmalloc
if [ -d ./$REEFF ]
then
    ./$REEFF/installer –auto /opt/ruby
echo "Dir test"
else
echo "Dir not found, exiting.."
exit
fi
echo "Creating ruby symlinks"
ln -s /opt/ruby/bin/ruby /usr/bin/ruby
ln -s /opt/ruby/bin/gem /usr/bin/gem
ln -s /opt/ruby/bin/rake /usr/bin/rake
ln -s /opt/ruby/bin/rails /usr/bin/rails
echo "Installing other gems"
gem install rails
gem install will_paginate
gem install shoulda
gem install mysql
echo "Installing passenger"
gem install passenger -v=$PASSENGER
echo "Config passenger"
yes ” | /opt/ruby/bin/passenger-install-apache2-module
echo "Copying passenger files"
touch /etc/apache2/mods-available/passenger.load
touch /etc/apache2/mods-available/passenger.conf
echo "LoadModule passenger_module /opt/ruby/lib/ruby/gems/1.8/gems/passenger-$PASSENGER/ext/apache2/mod_passenger.so" >> /etc/apache2/mods-available/passenger.load
echo "PassengerRoot /opt/ruby/lib/ruby/gems/1.8/gems/passenger-$PASSENGER
PassengerRuby /opt/ruby/bin/ruby" >> /etc/apache2/mods-available/passenger.conf
echo "Enabling passenger module"
a2enmod passenger
echo "Reloading apache"
/etc/init.d/apache2 reload
echo "##########################"
echo "# Installation Complete"
echo "##########################"
sleep 2
echo "##########################"
echo "# Installed Ruby Version #"
echo "##########################"
ruby -v
echo "##########################"
echo "# Installed Gems Version #"
echo "##########################"
gem -v
/opt/ruby/bin/passenger-status

转至:http://gist.github.com/37213

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/12/04/%E5%9C%A8UBUNTU%E4%B8%8B%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85rails%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/'>http://Apiaceae.github.io/blog/2009/12/04/%E5%9C%A8UBUNTU%E4%B8%8B%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85rails%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

如何创建弹出式登录页面

| Comments

1、创建一个网站;

2、添加母板页MasterPage.master;

3、WebConfig文件添加如下配置:

<authentication mode="Forms"/>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
4、MaterPage.master.cs代码
using System;
using System.Web.UI.WebControls;
using System.Web.Security;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
// Popup dialog won't fire if user is already in.
if (Request.IsAuthenticated)
{
LoginStatus1_ModalPopupExtender.Enabled = false;
}
else
{
LoginStatus1_ModalPopupExtender.Enabled = true;
}
}
// When Login button clicked, authenticate user's crendential.
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
// You can add authentication logic here.
e.Authenticated = ((Login1.UserName == "test") && (Login1.Password == "test")) ? true : false;
// If login failed, continue showing the popup dialog and failure text.
if (!e.Authenticated)
{
LoginStatus1_ModalPopupExtender.Show();
}
}
// When Cancel button clicked, hide the popup dialog.
protected void btnCancel_Click(object sender, EventArgs e)
{
LoginStatus1_ModalPopupExtender.Hide();
}
}

网站文件夹结构如下图:

2009-11-28_092013

 

文章链接:http://aspalliance.com/1882_How_to_Create_an__ASPNET_Modal_Popup_Login.all

代码下载:ModalPopupLogin.rar (781.89 kb)

ASP.NET使用MySql connector5.2.7小问题

| Comments

2009-11-13_180235

MySQL提供了一个在ASP.NET下连接MySQL数据库的连接器。下载地址在:http://dev.mysql.com/downloads/connector/net/5.2.html

但在具体使用过程中有一个小问题需要注意,例如使用GridView及默认的SqlDataSource连接mySql数据库,运行会出现错误,经过检查发现在产生的SQL语句中,默认都会给字段名加上中括号[],直接去掉这些中括号就行了。

2009-11-13_180533

2009-11-13_180841 
   original link:
   <a href='http://Apiaceae.github.io/blog/2009/11/14/ASP.NET%E4%BD%BF%E7%94%A8MySql+connector5.2.7%E5%B0%8F%E9%97%AE%E9%A2%98/'>http://Apiaceae.github.io/blog/2009/11/14/ASP.NET%E4%BD%BF%E7%94%A8MySql+connector5.2.7%E5%B0%8F%E9%97%AE%E9%A2%98/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

有意思的qq签名

| Comments

062335241502

1.无理取闹,必有所图!
2.幸福是个比较级,要有东西垫底才感觉得到。
3.一句“拿着”胜过两句“我会给你的”。
4.问候不一定郑重其事,但一定要真诚感人。
5.做与不做的最大区别是:后者拥有对前者的评论权。
6.当男人遇见女人,从此只有纪念日,没有独立日。
7.闭上眼睛,我看到了我的前途……
8.路见不平一声吼,吼完继续往前走。
9.当裤子失去皮带,才懂得什麽叫做依赖。
10.人生有时就像电脑,说死机就死机,没得商量。
11.海阔凭鱼跃,破鼓任人捶。
12.有钱的捧个钱场,没钱的回家取点钱来捧个钱场。
13.能够说出的委屈,便不算委屈;能够抢走的爱人,便不算爱人。
14.烟不听话,所以我们“抽烟”。
15.人长得漂亮不如活得漂亮!
16.不能自拔的,除了爱情,还有别人地里的萝卜。
17.我以为“隐身”别人就找不到我了,没用的,像我这样的人,无论在哪里都像漆黑夜里的萤火虫,够鲜明够出众。
18.有些事,明知是错的也要去坚持,因为不甘心;有些人,明知是爱的也要去放弃,因为没结局;有时候,明知路没了却还在前行,因为习惯了。
19.钻石恒久远,一颗就破产!
20.铁公鸡还会留点铁锈呢,你根本就是个不锈钢公鸡
21.还没来得及区沾花惹草,就被人拔光了。
22.女为悦己者容,男为悦己者穷。
23.每个人出生的时候都是原创,可悲的是,很多人渐渐都成了盗版!
24.不要说别人脑子有病,脑子有病的前提是必须有个脑子。
25.在哪里摔倒就在哪里躺下。
26.“浪漫”是一袭美丽的晚礼服,但你不能一天到晚都穿着它。
27.把一切平凡的事做好即不平凡,把一切简单的事做对即不简单。
28.我又不是王子,为什莫女孩遇见我总认为自己应该成为公主!
29.情侣间最矛盾的地方就是幻想彼此的未来,却惦记着对方的过去。
30.所谓缘分,就是爱情成功时的理由,失败时的借口;所谓婚礼,就是有情人终成“家属”的仪式;所谓分手,就是女人说了一百次也未必能做到,而男人说一次就能实现的事。
31.逆风的方向,更适合飞翔。我不怕万人阻挡,只怕自己投降。
32.你发怒一分钟,便失去60秒的幸福。
33.快乐要懂得分享,才能加倍快乐。
34.忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快乐,让我们真实的感受生活;疲惫是一种享受,让我们无暇空虚。
35.生活就像“呼吸”,“呼”是为了出一口气,“吸”是为了争一口气。
36.我问过烦恼了,他根本不爱你,让我转告你不要自作多情;健康让我带封情书给你:他对你一生不变!
37.知识就像内裤,看不见但很重要。
38.爱一个人好难,爱两个人好玩,爱三个人好烦,爱四个人翻船,爱五个人彻底玩儿完。
39.女人吻男人是一种幸福,男人吻女人是一种口福。
40.结婚就是给自由穿件棉衣,活动起来不方便,但会很温暖。
41.英雄难过美人关,我不是英雄,美人让我过了关。
42.玩命:要在有命的情况下才能玩,命都没了,拿什末玩啊!
43.别人一夸我,我就担心,担心别人夸得不够。
44.爱情永远比婚姻圣洁,婚姻永远比爱情实惠。
45.探索的旅程不在于发现新大陆,而在于培养新视角。
46.本无意与众不同,怎奈何品味出众。
47.一个人能走多远,要看他与谁同行;一个人有多优秀,要看他有谁指点;一个人有多成功,要看他有谁相伴。
48.叹气是最浪费时间的事情,哭泣是最浪费力气的行径。
49.男人的大脑喜欢女人的内心,但是眼睛喜欢女人的外表。
50.有钱就败家,没钱就拜神。
51.当初结婚是看上眼了,后来离婚是看走眼了。
52.咸鱼翻身,还是咸鱼。
53.我可以选择放弃,但不能放弃选择。
54.作为失败的典型,你实在是太成功了。
55.不是人人都能活的低调,可以低调的基础是随时都能高调。
56.女人喜欢长得坏坏的男人,不是喜欢长坏了的男人.
57.古人说:“女为悦己者容”,其实应该是“女为己悦者容”.
58.我们的爱情在这天夭折了,只为了让彼此有重生的机会.
59.老板用你的时候你就是人才,不用你的时候就变成裁人!
60.一个成功的男人就是能够挣到比妻子花的钱更多的钱,一个成功的女人就是能够找到这样一个男人.
61.跌倒了,爬起来再哭.
62.婚姻的杀手有时不是外遇,而是时间.
63.一个月亮一个你,两个影子我和你,三生有幸认识你,四个西施不如你.
64.绝口不提不是因为忘记,而是因为铭记.
65.有人说爱情是上辈子欠下的情债这辈子来还,我上辈子一定俗不可耐,所以今生无债可还!
66.让未来到来,让过去过去.
67.微小的幸福就在身边,容易满足就是天堂.
68.个头大就一定厉害吗?恐龙不是照样灭绝了!
69.善意的谎言:就是给自己的欺骗找一个很好的借口。
70.父母忽悠孩子叫教育;孩子忽悠父母叫欺骗;互相忽悠叫代沟。
71.孤单是一个人的狂欢,狂欢是一群人的孤单。
72.别跟我谈感情,谈感情伤钱。
73.幽默就是一个人想哭的时候还有笑的兴致。
74.感觉不到痛苦的爱情不是真正的爱情,感觉不到幸福的婚姻必是悲哀的婚姻。
75.一道幸福之门关闭时,另一道就会打开。我们经常盯着关闭的门,对开启的门却视若无睹。
76.咖啡苦与甜,不在于怎末搅拌,而在于是否放糖;一段伤痛,不在于怎末忘记,而在于是否有勇气重新开始。
77.人之所以活的累,是因为放不下架子、撕不开面子、解不开情结。
78.爱是费尽心力地全身投入,然后再百转千回地抽身而出!
79.我自横刀向天笑,笑完之后去睡觉!
80.人生最精彩的不是实现梦想的瞬间,而是坚持梦想的过程!
81.老婆和老妈掉进了河里,我先救老妈,因为是老妈给了我生命,我找不到任何理由丢下她不管。老婆如果没救上来,我可以再给她陪葬,在墓里继续我们的爱情
82.某天,我弟弟去某小学打篮球,听到一低年级女生问一个低年级男生:“你到底爱不爱我???”那男生无奈道:“我妈一天给我3元钱,其中两块五都让你拿去买零食了,你说我爱不爱你!!!”
83.USYD=U Sleep You Die UNSW=U Never Sleep Well
84.去趟珠江路,一共有3个人和我搭讪,一个是查我省份证的pol.ice叔叔,再来两个是卖毛片的 ……….
85.SARS,,,是病毒名字?还是汽水名字?(亚洲汽水)
86.除了萝莉,还是御姐
87."早睡"和"早起"并不总是一一映射的关系…..

http://www.x-beta.cn/qq/qq-qianming-20091113.html

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/11/13/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84qq%E7%AD%BE%E5%90%8D/'>http://Apiaceae.github.io/blog/2009/11/13/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84qq%E7%AD%BE%E5%90%8D/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

我们的地球—杰克逊如此说

| Comments

看看杰克逊的这个MV真的感觉很震撼!

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/11/09/%E6%88%91%E4%BB%AC%E7%9A%84%E5%9C%B0%E7%90%83%E2%80%94%E6%9D%B0%E5%85%8B%E9%80%8A%E5%A6%82%E6%AD%A4%E8%AF%B4/'>http://Apiaceae.github.io/blog/2009/11/09/%E6%88%91%E4%BB%AC%E7%9A%84%E5%9C%B0%E7%90%83%E2%80%94%E6%9D%B0%E5%85%8B%E9%80%8A%E5%A6%82%E6%AD%A4%E8%AF%B4/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

让你一生都受用的85句话

| Comments

DSC_0037

1、别低估任何人。

2、你没那么多观众,别那么累。

3、温和对人对事。不要随意发脾气,谁都不欠你的。

4、现在很痛苦,等过阵子回头看看,会发现其实那都不算事。

5、和对自己有恶意的人绝交。人有绝交,才有至交。

6、学会宽容伤害自己的人,因为他们很可怜,各人都有自己的难处,大家都不容易。

7、学会放弃,拽的越紧,痛苦的是自己。

8、低调,取舍间,必有得失。

9、不要试图给自己找任何借口,错误面前没人爱听那些借口。

10、慎言,独立,学会妥协的同时,也要坚持自己最基本的原则。

11、付出并不一定有结果。坚持可能会导致失去更多。

12、过去的事情可以不忘记,但一定要放下。

13、活得轻松,任何事都作一个最好的打算和最坏的打算。

14、做一个简单的人,踏实而务实。不沉溺幻想。不庸人自扰。

15、不说谎话,因为总有被拆穿的一天。

16、别人光鲜的背后或者有着太多不为人知的痛苦

17、尽量充实自己。不要停止学习。不管学习什么,语言,厨艺,各种技能。

18、注意自己的修养,你就是孩子的第一位老师。

19、孝顺父母。不只是嘴上说说,即使多打几个电话也是很好的。

20、爱父母,因为他们给了你生命,同时也是爱你爱的最无私的人。

21、偶尔也要现实和虚伪一点,因为不那样做的话,很难混。

22、收敛自己的脾气,偶尔要刻意沉默,因为冲动会做下让自己无法挽回的事情。

23、无论什么时候,做什么事情,要思考。

24、永远不要给背叛过自己的朋友第二次的背叛的机会。

25、无论是谁,都有自己的限度。特别是信任。

26、懂得倾听别人的忠告。

27、别人说的记在脑袋里,而自己的,则放在心里。

28、尽量不要讲同事朋友的八卦。

29、信佛,信因果,在真正的因果面前,人的力量是微不足道的。

30、坦然接受生活给你的馈赠吧,不管是好的还是坏的。

31、真正了解无常的含义,当你痛苦时,你要想这痛苦不是永恒的,当你快乐时,你要想这快乐也不是永恒的。

32、要快乐,要开朗,要坚韧,要温暖,对人要真诚。

33、空虚无聊的时候就读书,但一定得有自己的生活目标和计划。

34、对人性的弱点有清醒的认识,但要相信真诚的爱情,对爱情永远怀有单纯的向往。

35、不要太过依赖除自己以外的人,因为只有自己不会抛弃自己。

36、永远对生活充满希望,对于困境与磨难,微笑面对。

37、多看书,看好书。

38、少吃点,吃好的。

39、古龙说过,爱笑的女孩子,运气不会太差。

40、多交朋友,交好的朋友。女人一定要有闺密。

41、请记得,好朋友的定义是:你混的好,她打心眼里为你开心;你混的不好,她由衷的为你着急。

42、要有梦想,即使遥远。

43、努力爱一个人。付出,不一定会有收获;不付出,却一定不会有收获,不要奢望出现奇迹。

44、承诺是一件美好的事情,但美好的东西往往不会变为现实。

45、每个人都有自己鲜明的主张和个性,不要识途去改变他人,同样,也不要被他人所改变。改了,就不是自己了。

46、没有十全十美的东西,没有十全十美的人,关键是清楚到底想要什么。得到想要的,肯定会失去另外一部分。如果什么都想要,只会什么都得不到。

47、这个世界最脆弱的是生命,身体健康,很重要。

48、老天爷对每个人都是公平的。

49、不要试图控制别人,不要要求别人理解你

50、活在当下,别在怀念过去或者憧憬未来中浪费掉你现在的生活

51、不要忘本,任何时候,任何事情

52、要诚恳,要坦然,要慷慨,要宽容,要有平常心

53、学会忘记, 善忘是一件好事

54、要乐观,要积极,多笑,多照镜子

55、相信他说的话,但不要当真。

56、凡事多长心眼。

57、不要自作聪明。

58、做自己的决定。然后准备好承担后果。从一开始就提醒自己,世上没有后悔药吃。

59、自己不喜欢的人,可以报之以沉默微笑;自己喜欢的人,那就随便怎么样了,因为你的喜爱会挡也挡不住地流露出来。

60、相信因果报应!相信轮回!

61、要学会忍耐与坚持!

62这个世界上没有真正的爱情……时间可以冲淡一切

63、不要做刺猬 能不与人结仇就不与人结仇,谁也不跟谁一辈子,有些事情没必要记在心上

64、有时要学会听取身边人的意见,更多时候这样才不会让自己受到伤害。

65、忘记过去才能有新的开始。

66、这个世界很不公平。

67、不要太依赖朋友,人性基本都有恶的一面。

68、爱情很美好,相信爱情。如果连爱情都不相信那人生岂不太苦了?

69、想得到一样一定会失去另一件东西。

70、痛苦让人成长,是你进步的一个机会,一个挑战。别害怕痛苦的事情,它有另一面积极的作用。

71、人就是孤独的,缓解它带来的痛苦的唯一方式就是平静的接受它。

72、没有经历过的,永远不能理解这些道理,但听听也是好的。

73、可以不美丽,可以不可爱,可以不温柔,但是一定要诚实和善良。

74、喜爱一切美好的事物,赞美并享受它们所带来的美好。

75、当困难来临时,用微笑去面对,用智慧去解决。

76、要勇于承认自己所犯的错误,并承担其带来的责任。

77、爱家人,爱朋友,爱伴侣,爱孩子,然而,要真正为自己活。

78、永远不要为已发生的和未发生的事忧虑。已经发生既成事实忧虑也于事无补,未发生的凭主观臆测,无法推断事情的走向,徒增烦恼而已。

79、不要老在别人面前倾诉你的困境袒露你的脆弱。

80、不要想着依靠别人,要有目标有追求,这与年龄无关。

81、做一个简单的人,踏实而务实。不沉溺幻想。不庸人自扰。

82、学会思考,头脑清晰,明白自己的渺小,切忌自我陶醉。炮打出头鸟,凡事不要强出头,因为并没有想象中的强!

83、每个人都是独立的个体,真的没有谁离开谁就活不下去!

84、不要太高估自己在集体中的力量,因为当你选择离开时,就会发现即使没有你,太阳照常升起!

85、社会是有等级的,很多事不公平。别抱怨,因为没有用。

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/11/03/%E8%AE%A9%E4%BD%A0%E4%B8%80%E7%94%9F%E9%83%BD%E5%8F%97%E7%94%A8%E7%9A%8485%E5%8F%A5%E8%AF%9D/'>http://Apiaceae.github.io/blog/2009/11/03/%E8%AE%A9%E4%BD%A0%E4%B8%80%E7%94%9F%E9%83%BD%E5%8F%97%E7%94%A8%E7%9A%8485%E5%8F%A5%E8%AF%9D/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

ASP.NET MVC模式学习笔记(一)

| Comments

2009-10-30_223622

在一对多的关系中(如上图),Dinner类有一个强类型的RSVP集合;而RSVP类有一个强类型的Dinner属性。这样两个类间通过这关系进行相互的数据访问

模型(Model)

NerdDinnerDataContext Class

2009-10-30_225046

2009-10-30_231313

 

 

DinnerRepository dinnerRepository = new DinnerRepository();
// Retrieve specific dinner by its DinnerID
Dinner dinner = dinnerRepository.GetDinner(5);
// Mark dinner to be deleted

DinnerRepository dinnerRepository = new DinnerRepository();
// Retrieve specific dinner by its DinnerID
Dinner dinner = dinnerRepository.GetDinner(5);
// Mark dinner to be deleted
dinnerRepository.Delete(dinner);
// Persist changes
dinnerRepository.Save();


dinnerRepository.Delete(dinner);
// Persist changes
dinnerRepository.Save();

控制器和视图

传统的网络应用框架,比如ASP, PHP, ASP.NET表单程序都是将传入的Url对应到磁盘上的文件。例如:Products.aspx或者Products.php。MVC框架则是把Url对应到一个类的方法上。

With traditional web frameworks (classic ASP, PHP, ASP.NET Web Forms, etc), incoming URLs are
typically mapped to files on disk. For example: a request for a URL like "/Products.aspx" or
"/Products.php” might be processed by a “Products.aspx” or “Products.php” file.
Web-based MVC frameworks map URLs to server code in a slightly different way. Instead of mapping
incoming URLs to files, they instead map URLs to methods on classes. These classes are called
“Controllers” and they are responsible for processing incoming HTTP requests, handling user input,
retrieving and saving data, and determining the response to send back to the client (display HTML,
download a file, redirect to a different URL, etc).

理解ASP.NET MVC路由(Understanding ASP.NET MVC Routing)

路由规则保存在Global.asax文件中,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace NerdDinner
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

2009-10-31_180343

2009-10-31_223007 

2009-10-31_223729

<p