企业网站(国外)

 

http://www.msn.com/

http://www.hotmail.com/
http://www.godaddy.com/ (全球最大域名注册商)
http://www.myspace.com/ 
http://www.match.com/ (世界最大婚恋网站)
http://www.monster.com/ (世界最大招聘网站,chinahr.com母公司)

http://www.stackoverflow.com/ (近两年火起来的技术问答网站,比Quora火的多啊)

http://www.Dell.com/
http://www.CA.com/
http://www.McAfee.com/
http://www.SAP.com/

 


 

电子商务

http://www.newegg.com/  (新蛋) 

http://www.360buy.com/   (京东)
http://www.dangdang.com/  (当当)

http://www.ctrip.com/ (携程)
http://www.elong.com/  (艺龙)
http://www.lotour.com/

http://www.vancl.com/ 
http://www.m18.com/
http://www.yifu.com/
http://www.letao.com/
http://mall.sina.com.cn/ (新浪商城)
http://www.redbaby.com.cn/
http://www.moonbasa.com/ (梦芭莎)
http://www.no5.com.cn/
http://www.99read.com/
http://www.coo8.com/
http://www.yintai.com/
http://www.5173.com/

http://www.b2b.cn/

 


 

在线支付 

http://www.ips.com/ (环迅支付)
http://www.shengpay.com/ (盛付通,盛大旗下)
http://www.chinapnr.com/ (汇付天下)
http://www.icbc.com.cn/
http://www.cmbchina.com/ (招商网银https://pbsz.ebank.cmbchina.com/CmbBank_GenShell/UI/GenShellPC/Login/Login.aspx)
http://www.95599.cn/ (农行网银https://easyabc.95599.cn/SlfRegPer/netBank/zh_CN/entrance/logon.aspx)
http://www.boc.cn/ 


 

 

企业网站和其他类型网站(国内) 

http://www.sdo.com/ (盛大)
http://www.tianya.cn/ (天涯)
http://www.58.com/   (58同城)
http://www.hexun.com/ (和讯)
http://www.fetion.com.cn/ (中国移动飞信http://feixin.10086.cn/)
http://www.qidian.com/ (起点中文网)
http://www.dianping.com/ (大众点评)
http://www.cnblogs.com/  (博客园)
http://www.csdn.net/     (床上等你)
http://www.chinahr.com/   (中华英才网)
http://www.zhaopin.com/
http://www.soufun.com/ (搜房)
http://www.dichan.com/ (新浪地产)
http://www.autohome.com.cn/

 http://www.bitauto.com/

posted @ 2011-07-27 14:48 在天空飞翔 阅读(1104) 评论(4) 编辑

    最近升级一个webservices(其实就是在web.config中修改一个参数的值),忽然看到有个PrecompiledApp.config文件,

当时不知道是脑袋被门夹了还是怎么,觉得这个文件和 xxx.vshost.exe.config 一样是多余的,直接就删掉了,参数修改完毕

后,运行一下测试,没问题,心想就这么搞定了。

    到了第二天,系统没来由的挂掉了 ,webservices中的函数运行出错,最最奇怪的是 log4net 不输出任何日志了,这叫我怎么查

啊,我没装远程调试啊。。

    马上想想昨天在服务器上修改啥了,但是只能想起修改过web.config 的参数,把参数还原?还是不行。

    只好在本机测试一下,一切正常,再发布到服务器上(我发布的时候,一般只更新服务器上的 bin 目录),还是没搞定,重启IIS? 不行

重启服务器?不行,试了N种办法,在本地都是正常的,放到服务器上都不行。最后实在没办法了,把服务器上 旧版本的webservices备份

调出来,整个覆盖掉现在的文件(这会不敢像以前那样只更新 bin 目录了),覆盖掉后再重启IIS,奇怪,OK了。把web.config 的参数再改

一下,也没问题了。

    虽然问题已经解决了,但由于没找到根本原因,这几天也一直想着这件事,今天发布一个新网站时,看到 PrecompiledApp.config时灵

光闪现,就是它,一定就是它!!!马上上网搜索 PrecompiledApp.config 文件,哎,果然是个不能删的重要文件啊。。。再发布新版本

到服务器上,就没出过什么问题了。

PrecompiledApp.config 文件用于跟踪应用程序的部署方式,以及 ASP.NET 是否需要在请求时编译任何文件。 

删除之后一些应用程序级的东西将无法使用. 

所以 log4net 才会无法正常工作。

posted @ 2011-03-23 10:09 在天空飞翔 阅读(475) 评论(0) 编辑

很好听的一首音乐,呵呵,与各位共享

 

来自班得瑞的一首 the dream catcher (追梦人)

 

很难找的啊, 百度mp3上都搜不到

 

posted @ 2011-02-17 09:43 在天空飞翔 阅读(33) 评论(0) 编辑

因为工作中会接触到许多不同的数据库,像 oracle,access,mssql,mysql,db2 等,比较杂。

所以一直想做一个通用的数据查询工具,支持所有的数据库,操作界面统一为 mssql 2005 的界面,这样可以少安装很多客户端工具,也不需要在不同的数据库客户端工具之间切换来切换去了。

先放一个初始的截图,和mssql的操作界面一样,左边是表、列信息显示区,右上是 sql 语句录入区,右下是结果显示区

支持表和字段的自动提示,支持 csv,excel 的导入导出

ps:图中连接的数据库为 IBM DB2 9.5

 

 

在做数据导入导出功能时,最基本的 csv 文件格式一定要支持吧,当时就想 csv还不简单,无非就是逗号分隔,回车换行的文本文件吗,很快就写出来了


最初的 csv 读取
public static string[][] read_csv(string text)
{
    var text_array 
= new List<string[]>();
    
string[] lines = text.Split('\r''\n');
    
foreach (var line in lines)
    {
        
if (!string.IsNullOrEmpty(line))
        {
            
string[] fields = line.Split(',');
            text_array.Add(fields);
        }
    }
    
return text_array.ToArray();
}


public   text)
{
  lines)
.IsNullOrEmpty(line))
);
            text_array.Add(words);
        }
 text_array.ToArray();

开始一切都好,没遇到什么问题,后来用的多了,问题开始出现了,发现有些 csv的字段中含有逗号,这下完了,遇到逗号就当成另外一个字段了,当然会报错,原来当初太轻视 csv 文件了,呵呵,实际上csv 也是有一些需要注意的规范的。

1.如果csv文件字段中有特殊字符,整个字段应该用双引号包起来

   特殊字符有三种, 逗号[,]    回车换行[\r\n]    和处于字段开头的双引号["]

   例如:字段   a,     b,c(b,c 文本中包含逗号)       ,d      

            就应该变成    a,"b,c",d

            有回车换行的也是一样 

2.如果 csv字段中有特殊字符,并且字段中含有双引号,则字段中的双引号应该写两次

    例如:字段  a,     b,c"aa      ,d

             就应该变成   a,"b,c""aa",d

 

 有了这两个规范,把读取方法重新修改一下就完了,也不复杂

修改后的 csv 读取
public static string[][] read_csv(string text)
{
    
if (text == null)
        
return null;
    var text_array 
= new List<string[]>();
    var line 
= new List<string>();
    var field 
= new StringBuilder();
    
//是否在双引号内
    bool in_quata = false;
    
//字段是否开始
    bool field_start = true;
    
for (int i = 0; i < text.Length; i++)
    {
        
char ch = text[i];
        
if (in_quata)
        {
            
//如果已经处于双引号范围内
            if (ch == '\"')
            {
                
//如果是两个引号,则当成一个普通的引号处理
                if (i < text.Length - 1 && text[i + 1== '\"')
                {
                    field.Append(
'\"');
                    i
++;
                }
                
else
                    
//否则退出引号范围
                    in_quata = false;
            }
            
else //双引号范围内的任何字符(除了双引号)都当成普通字符
            {
                field.Append(ch);
            }
        }
        
else
        {
            
switch (ch)
            {
                
case ','//新的字段开始
                    line.Add(field.ToString());
                    field.Remove(
0, field.Length);
                    field_start 
= true;
                    
break;
                
case '\"'://引号的处理
                    if (field_start)
                        in_quata 
= true;
                    
else
                        field.Append(ch);
                    
break;
                
case '\r'//新的记录行开始
                    if (field.Length > 0 || field_start)
                    {
                        line.Add(field.ToString());
                        field.Remove(
0, field.Length);
                    }
                    text_array.Add(line.ToArray());
                    line.Clear();
                    field_start 
= true;
                    
//在 window 环境下,\r\n通常是成对出现,所以要跳过
                    if (i < text.Length - 1 && text[i + 1== '\n')
                        i
++;
                    
break;
                
default:
                    field_start 
= false;
                    field.Append(ch);
                    
break;
            }
        }
    }
    
//文件结束
    if (field.Length > 0 || field_start)
        line.Add(field.ToString());
    
if (line.Count > 0)
        text_array.Add(line.ToArray());
    
return text_array.ToArray();
}

经过修改后,基本上就没遇到什么问题了。

 

 

posted @ 2011-01-27 12:36 在天空飞翔 阅读(2583) 评论(4) 编辑

在用友金蝶等财务软件中,经常需要输入货币类型的数据, 那么这种输入框要如何制作呢?

 借助于强大的 DataGridView 控件, 我们可以轻易的制作出这种效果,见下图.

 

要扩展 DataGridView 的列类型,我们只需要从 DataGridViewColumn 类中派生出一个新的类,并且为这个列添加对应的单元格模板即可(从 DataGridViewCell 类中派生)。

 

代码其实超级简单, 新增一个 Column 类型

代码
    public class DataGridViewCurrencyColumn : DataGridViewColumn
    {
        
public DataGridViewCurrencyColumn()
            : 
base(new DataGridViewCurrencyCell())
        {
            Resizable 
= DataGridViewTriState.False;
            
//固定宽度
            Width = 120;
        }

        
public override sealed DataGridViewTriState Resizable
        {
            
get { return base.Resizable; }
            
set { base.Resizable = value; }
        }
    }


新增一个 Cell 类型

主要是重载 OnPaint ,对单元格重新绘制,给数据的每一位都画上一条分隔线就行了

代码
    public class DataGridViewCurrencyCell : DataGridViewTextBoxCell
    {
        
//每一位数字的宽度
        private const int P_WIDTH = 10;
        
        
public override Type ValueType
        {
            
get { return typeof (decimal); }
        }

        
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex,
                                      DataGridViewElementStates cellState, object value, object formattedValue,
                                      
string errorText, DataGridViewCellStyle cellStyle,
                                      DataGridViewAdvancedBorderStyle advancedBorderStyle,
                                      DataGridViewPaintParts paintParts)
        {
            
//背景色
            Color clr_background = (cellState & DataGridViewElementStates.Selected) !=
                                   DataGridViewElementStates.Selected
                                       
? cellStyle.BackColor
                                       : cellStyle.SelectionBackColor;
            
using (Brush bru = new SolidBrush(clr_background))
            {
                graphics.FillRectangle(bru, cellBounds);
            }
            
//边框
            if ((paintParts & DataGridViewPaintParts.Border) != 0)
            {
                PaintBorder(graphics, clipBounds, cellBounds, cellStyle, advancedBorderStyle);
            }

            
//画出10个整数位,2个小数位
            for (int i = 1; i < 10; i++)
            {
                graphics.DrawLine(Pens.DarkCyan, cellBounds.Left + i*P_WIDTH, cellBounds.Top,
                                  cellBounds.Left + i*P_WIDTH, cellBounds.Bottom - 1);
            }
            graphics.DrawLine(Pens.Red, cellBounds.Left + 10*P_WIDTH, cellBounds.Top, cellBounds.Left + 10*P_WIDTH,
                              cellBounds.Bottom - 1);
            graphics.DrawLine(Pens.DarkCyan, cellBounds.Left + 11*P_WIDTH, cellBounds.Top, cellBounds.Left + 11*P_WIDTH,
                              cellBounds.Bottom - 1);

            
//文字
            if (value == null)
                
return;
            var sf = new StringFormat
                         {
                             Alignment = StringAlignment.Center,
                             LineAlignment = StringAlignment.Center
                         };

            
decimal v = Convert.ToDecimal(value);
            
string s_int = ((int) v).ToString();
            
//两位小数
            string s_dec = (v*100%100).ToString("00");
            
string s_value = "" + s_int + s_dec;
            
for (int i = 0; i < s_value.Length; i++)
            {
                
string ch = s_value[s_value.Length - i - 1].ToString();
                
int x = cellBounds.Left + (12 - i - 1)*P_WIDTH;
                
int y = cellBounds.Top;
                var rect = new RectangleF(x, y, P_WIDTH, cellBounds.Height);
                graphics.DrawString(ch, cellStyle.Font, Brushes.Black, rect, sf);
            }

            sf.Dispose();
        }
    }

 

posted @ 2010-07-07 16:33 在天空飞翔 阅读(1029) 评论(4) 编辑
摘要: 向长期战斗在韩剧一线,不做饭,不洗碗;常上网,爱聊天;魅力十足,空想连篇,并牢牢掌握老公钱包的新一代杰出女性们致以节日的问候。阅读全文
posted @ 2010-03-08 12:39 在天空飞翔 阅读(73) 评论(0) 编辑
摘要: 需要编写一个exe文件,而其中嵌入了一段我设计好的音乐,打开exe后音乐自动播放。最重要的是除了 exe 文件外不能有额外的附加文件,将这个exe拷到其他(安装有framework的)电脑上,需要能正...阅读全文
posted @ 2009-12-25 14:53 在天空飞翔 阅读(398) 评论(0) 编辑
摘要: 春的一首新歌, 词曲都是春哥做的, 很不错啊, 推荐一下曲名:下个,路口,见 歌手:李宇春 铃声--> 免费点歌--> 刚下的地铁还不算拥挤你那边飞机碰巧也落地东京下雨 淋湿巴黎收音机 你听几点几当半个地球外还有个你当相遇还没到对的时机夏天一去 又是冬季7-11 暖杯巧克力秒针转动 DIDIDA小小时差 DIDIDA我早茶月光洒在你头发平行的画 DIDIDA几时交叉 DIDIDA下个路口再见吧忙碌会议你头脑转不停我街头散步偷偷喘口气伦敦叹息 倾听悉尼同时期 就像在一起我偏爱弗朗明哥的热情我倾心维也纳古典钢琴不曾相遇 未曾熟悉深呼吸 你会在哪里秒针转动 DIDIDA小小时差阅读全文
posted @ 2009-08-27 16:34 在天空飞翔 阅读(146) 评论(0) 编辑
摘要: 问:请简要介绍一下你自己。 答:简历上都有,写得很详细。 问:你的简历有些什么值得特别关注的吗? 答:封面比较漂亮,花了两元做的。 问:你为什么对这份工作感兴趣? 答:人不能没有工作,找到一份先干着。 问:你跟其他的应聘者相比有何优势? 答:我不认识他们。 问:为什么你认为自己适合这个职位? 答:你们招聘广告上只有这么一个职位。 问:列举一个体现你有领导能力的例子。 答:大学时,每次打牌都是我组织的。 问:我为什么要从这么多应聘者中选你呢? 答:你的问题为什么要我来回答。 问:怎样在一堆做不完的工作中区分轻重缓急? 答:反正做不完,区分出来又有什么用?阅读全文
posted @ 2009-03-09 09:21 在天空飞翔 阅读(406) 评论(1) 编辑
摘要: 警:“这里是威尔士警察,你遇到什么紧急事件?” 民:“其实也不怎么紧急。我只是需要告诉你们, 山那头有一个明亮、静止的不明飞行物。”警:“好。” 民:“如果你们有几分钟空闲,也许你们能来看看它是什么?它在那停留至少半小时,而且现在还在那里。” 警:“它在那停留半小时。好。它是在山上还是在天上?” 民:“它在天上。” 警:“我会派人到那查清楚。” 民:“OK。”       总部:“(代号)阅读全文
posted @ 2008-12-19 15:39 在天空飞翔 阅读(289) 评论(2) 编辑