ds.Tables[0].DefaultView.ToTable("q", true, "errorZone");

 第二个参数"True"  or "False":ture就表示要去除重复。

posted @ 2010-06-17 08:37 no name is my name 阅读(122) 评论(0) 编辑

今天我们公司的SNS邀请中的MSN邀请突然不能取MSN联系人了。问题找了很久,都没头绪!

 

http://www.zu14.cn/找到这篇文章《微软升级Live Messenger服务,DotMSN所开发的MSN机器人不再被支持,建议大家切换到MSNPSharp》

内容如下:

 

2009年12月9日,微软升级了其Live Messenger服务,导致由DotMSN 2.0及以前版本开发的MSN机器人都不能再登录了。

由于DotMSN当初开发的时候较早,而且是模拟windows messenger的方式,实现登录和与服务器交互的,只支持到 MSNP8左右,微软这次升级之后,发现DotMSN已经不能登录了,我尝试测试了更换模拟帐号等,均不能登录成功了。

所以,建议大家更换为使用 MSNPSharp 来实现吧。MSNPSharp目前最新的版本为3.01,已经支持到 MSNP18 了。

用 MSNPSharp 2.58 也是OK的,我自己已经对2个版本都进行了切换测试,都OK的。而且功能完备了很多,支持了OIM(离线消息)。

唯一有点问题的地方是: 自定义图片和屏幕昵称,一直不能顺利显示,总是显示为默认的注册名,尝试了多次,均不完美。也许是我自己还没完全熟悉吧。

大家,如果有什么问题,欢迎多交流。

 

MSNPSharp的地址在
http://code.google.com/p/msnp-sharp/

 

posted @ 2009-12-29 15:31 no name is my name 阅读(211) 评论(1) 编辑
摘要: POP3邮局协议-版本31. 简介对于在网络上的比较小的结点,支持消息传输系统(MTS)是不实际的。例如,一台工作站可能不具有充足的资源允许SMTP服务器和相当的本地邮件传送系统保持序驻留,并持续运行。同样的,将一台个人计算机长时间连接在IP类型网络上的费用也是可观的(结点缺少的资源被称为“联络性”)。虽然如此,在这样的小结点上允许管理邮件是十分有用的,并且这些结点经常支持...阅读全文
posted @ 2009-11-02 11:56 no name is my name 阅读(168) 评论(0) 编辑

 DotMSN已经可以用来取MSN用户列表了,可是登录回调事件在web上很难做,用异步是可以记录到数据库,可是不方便马上返回给客户端。这个问题一直没有很好的解决(有用sleep的,可是这样不能保证可以得到返回,当然也有可能会浪费时间),下面的做法解决了这个问题。
看来自己对多线程要好好的深入研究一下了。

///构造好友姓名与邮箱

 public class FriendInfo
    {
        private string username;
        private string email;
        public FriendInfo(string username, string email)
        {
            this.username = username;
            this.email = email;
        }
        public string UserName
        {
            get { return username; }
            set { username = value; }
        }
        public string Email
        {
            get { return email; }
            set { email = value; }
        }
      
    }

 

 

public class GetFriendInfo
    {
        protected   XihSolutions.DotMSN.Messenger     messenger   =   new Messenger();
        protected string xmlPath = "";
        protected AutoResetEvent are;//多线程同步信号
        IList<FriendInfo> models = new List<FriendInfo>();
        public void Connect()
        {

            try
            {
                messenger.Credentials.ClientID = "msmsgs@msnmsgr.com";
                messenger.Credentials.ClientCode = "Q1P7W2E4J9R8U3S5";
                messenger.Credentials.Account = "yours@hotmail.com";
                messenger.Credentials.Password = "password";
                if(messenger.Connected)
                    messenger.Disconnect();
                messenger.Connect();
                are.WaitOne(); //UI线程等待
            }
            catch
            {

            }

        }
        /// <summary>
        /// 获取列表开始
        /// </summary>
        public void GetFriendList()
        {
            are = new AutoResetEvent(false);
//            messenger.Nameserver.SignedIn += new EventHandler(Nameserver_SignedIn);
            messenger.Nameserver.SignedIn += Nameserver_SignedIn;
            Connect();
          
        }
        private void Nameserver_SignedIn(object sender, EventArgs e)
        {

            try
            {
                messenger.Owner.Status = PresenceStatus.Online;
                SetFriendInfo();
                //UpdateContactlist();
              
            }
            catch
            {

            }


        }
       
        /// <summary>
        /// 填充好友列表
        /// </summary>
        private void SetFriendInfo()
        {
            try
            {
                if(messenger.Connected == false)
                    return;
                FriendInfo model = null;
                foreach(Contact contact in messenger.ContactList.Allowed)
                {
                   model = new FriendInfo(contact.Name,contact.Mail);
                   models.Add(model);
                }
                are.Set();//通知UI线程可以继续干活了。。
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 返回列表数据
        /// </summary>
        /// <returns></returns>
        public IList<FriendInfo> GetFriendListInfo()
        {
            return models;
        }

   }

///以下是aspx页面调用

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetFriendInfo getFriendInfo = new GetFriendInfo();
                getFriendInfo.GetFriendList();
                IList<FriendInfo >model = getFriendInfo.GetFriendListInfo();
                foreach(FriendInfo info in model)
                {
                    Response.Write(info.UserName+"||"+info.Email + "<br/>");
                }
             }
         
        }

posted @ 2009-08-01 12:37 no name is my name 阅读(682) 评论(4) 编辑
原来在HTML文件头部声明了这样一句:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

改成这样就好了:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
或者直接删掉
但页面稍有变化,感觉不爽,于是又在google里找,终于发现这是IE5与IE6的区别:

var scrollPos;
if (typeof window.pageYOffset != 'undefined') {
   scrollPos = window.pageYOffset;
}
else if (typeof document.compatMode != 'undefined' &&
     document.compatMode != 'BackCompat') {
   scrollPos = document.documentElement.scrollTop;
}
else if (typeof document.body != 'undefined') {
   scrollPos = document.body.scrollTop;
}
alert(scrollPos);

一切OK.
posted @ 2008-09-16 08:41 no name is my name 阅读(77) 评论(0) 编辑
摘要: 在网页制作中有时会碰到一段连续的英文词或者一堆感叹号把网页撑开的现象,只要在CSS中加上如下的样式就OK了!!!!!!!table{table-layout: fixed;}td(word-break: break-all; word-wrap:break-word;)阅读全文
posted @ 2008-09-13 10:32 no name is my name 阅读(85) 评论(0) 编辑
摘要: 关于需求:1、什么是需求?——理解需求和功能的区别我们举个例子,比如用手机打电话。首先,你需要开机,然后,手机通过无线电信号连接到基站,然后,打开手机通讯簿,找到小朱的电话号码,接着,拨号、通话,通话完毕,挂断。在这里,打电话是一个需求。给小朱打电话是一个需求的实例(需求的实例,有时也称为应用场景,可以拿来做系统测试用例,但是不能只开发专门给小朱打电话的手机!)。对于手机软件而言,必须提供:开机、...阅读全文
posted @ 2008-08-23 14:30 no name is my name 阅读(36) 评论(0) 编辑
摘要: 最近写程序抓取数据,发现对有的网站用HttpWebrequest抓取网页的时候会报错,捕获异常提示:"服务器提交了协议冲突 Section=ResponseStatusLine ”,改用WebClient也是同样问题,后来知道,WebClient是对HttpWebrequest进一步进行了封装。最后终于找到问题根源:The server committed a protocol vio...阅读全文
posted @ 2008-08-22 13:55 no name is my name 阅读(2553) 评论(0) 编辑
摘要: 我的操作系统为Windows 2003 Server, 文件系统NTFS, 在SQL Server 2005 Express 上附加(Attach)从另外一台电脑Copy过来的数据库后,数据库为“只读”。如下图:解决办法:打开 SQL Server Configuration Manager, 打开SQL Server SQLEXPRESS 的属性,如下图:在内置帐号处,把...阅读全文
posted @ 2008-06-10 23:11 no name is my name 阅读(263) 评论(0) 编辑
摘要: 默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤-- 允许配置高级选项EXEC sp_configure 'show advanced options', 1GO-- 重新配置RECONFIGUREGO-- 启用xp_cmdshellEXEC sp_configure 'xp_cmdshell', 1GO--重新配置RE...阅读全文
posted @ 2008-06-10 23:06 no name is my name 阅读(2772) 评论(0) 编辑

公告

昵称:no name is my name
园龄:4年8个月
粉丝:1
关注:0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910