摘要: 有的时候,我们常常需要将一个数据表格当做参数发送给存储过程,然后进行操作,以往,我常常用逗号或者其他分隔符将数据拼成一个字符传,但这个方法有限制,sql verchar类型只能达到8000字符,现在有了SQL2005了,我们可以直接用XML当做参数了,这样既方便有没有那个限制了。自己也是刚刚使用了几次,有些功能还是不是很清楚。只将自己学习的两种方法总结一下。一种方法,当做表用,如下,返回多列。@PeakHoursxml,DECLARE@NEWPeakHoursTABLE([WeekDay]smallint,[PeakHourType]varchar(10),[StartTime]datetim阅读全文
posted @ 2011-05-24 14:09 Vincent.Tianjin 阅读(48) 评论(0) 编辑
摘要: 如果想要实现如下图所示的GridView表头,怎样做呢?其实很简单,我们只需要在后台代码中RowCreated(object sender, GridViewRowEventArgs e)事件中动态的添加表头就可以了,直接上代码,一看就明白。主要注意的就是,表头的创建顺序,由上而下的创建。if(e.Row.RowType==DataControlRowType.Header){TableCellCollectioncellHeaders=e.Row.Cells;cellHeaders.Clear();cellHeaders.Add(newTableHeaderCell());cellHeade阅读全文
posted @ 2011-05-24 13:54 Vincent.Tianjin 阅读(45) 评论(0) 编辑
摘要: 关闭子页面后,刷新父页面,这个功能大家经常会需要用到。前两天写个项目用到这个功能,在这里记录一下,备以后使用。其实很简单,父窗口要用只需用简单的window。open函数就可以。function OpenExcluded() { var left = (screen.width / 2) - 370; var top = (screen.height / 2) - 240; var targetWin = window.open('ExcludedStores.aspx', 'ExcludedStores', 'width=740,height=480,阅读全文
posted @ 2011-05-24 13:38 Vincent.Tianjin 阅读(217) 评论(0) 编辑
摘要: 前两天做项目要用到一个列表排序,查了一下资料,在这里总结一下。List<Position> StoresAll = null;//过滤StoresAll = position.ChildrenAll.FindAll(i => i.Type== Position.PositionType.Store);//排序StoresAll.Sort((Position pa, Position pb) => { return pa.OrgUnitId.CompareTo(pb.OrgUnitId); });阅读全文
posted @ 2011-05-24 13:30 Vincent.Tianjin 阅读(43) 评论(0) 编辑
摘要: 学习了一个方法,将字符串数据转换成 byte[] 值方法,可能以后还会用到。 privatebyte[]String2Byte(stringparm){UnicodeEncodinguniEncoding=newUnicodeEncoding();byte[]result=uniEncoding.GetBytes(parm);returnresult;}privatestringByte2String(byte[]parm){UnicodeEncodinguniEncoding=newUnicodeEncoding();stringresult=uniEncoding.GetString(pa阅读全文
posted @ 2011-03-15 13:58 Vincent.Tianjin 阅读(44) 评论(0) 编辑
摘要: 闲来无事,把AutoResetEvent 与 ManualResetEvent 两个Event进行了一下实践Demo,毕竟以后会遇到多线程的开发问题,现在有时间把它们好好的先试验一下,这样印象会更深刻点。总体来讲,我觉得AutoResetEvent 与 ManualResetEvent的功能非常相似,可以把它们认为线程执行的开关,当调用Set()函数的时候,就是通知线程继续往下进行。但是,AutoResetEvent 与 ManualResetEvent之间又有一个最大的区别。就是AutoResetEvent 当调用Set()函数,线程继续执行,当执行到WaitOne()的时候,会自动的将线.阅读全文
posted @ 2011-03-07 14:36 Vincent.Tianjin 阅读(115) 评论(0) 编辑
摘要: 最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebService的安全授权这个方面进行了一下研究,以前调用的WebService大部分都是局域网内部调用,几乎没有什么权限需要增加的,今天借此机会,深入研究了一下,发现实现起来还是挺容易的。 基本原理就是利用SoapHeader类,继承该类,然后在我们公布的方法上加上对应的标签,呵呵。现在做一个Demo程序,进行验证。我们首先衍生一个自己的子类,暂命名为SecurityHeader ,在该类中需要增加一个公共属性,详看如下代码publicclassS.阅读全文
posted @ 2011-03-04 10:34 Vincent.Tianjin 阅读(381) 评论(0) 编辑
摘要: 前些日子,公司要求做一个数据导入程序,要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储。于是在网上进行查找,发现了一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据。SqlBulkCopy存储大批量的数据非常的高效,就像这个方法的名字一样,可以将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据。初次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert方法不止快很多倍。下面,我将用代码,介绍其用法。///<summary>///LaborRepor阅读全文
posted @ 2011-03-02 16:54 Vincent.Tianjin 阅读(242) 评论(0) 编辑
摘要: 上一篇写了如何在自定义的WebPart中如何动态的对WebPart配置属性设置进行了阐述,我们做简单的属性配置,但是,开发中往往容易实现的,并不是我们想要的结果,如在上篇文章中描述的,当同时对WebPart配置的时候,及要求有下拉选择框,又要求有简单的文本框输入,这个时候,你就会发现,根本无法将这些操作配置放入到同一个category中。如下图,带有下拉选择框的高级配置属性,根本无法与第二张图中的其它属性归属于同一个catepory中。 能不能实现将它们放入同一配置面板中呢?答案是肯定的,能。但是实现起来,不是那么直接了,我们需要变通一下,我们首先要定义一个Panl面板,我们把我们需要的所有.阅读全文
posted @ 2011-02-25 10:52 Vincent.Tianjin 阅读(158) 评论(1) 编辑
摘要: 我们在开发WebPart的时候,有的时候需要增加一些动态的配置属性,这些属性我们想保存一些对WebPart的配置参数,比如WebPart要显示的数据是从那个Customer List中抓取的,怎样的显示等等配置,这个时候我们就需要对WebPart的参数进行设置。 WebPart属性设置,一般分为两类,一种是简单的无服务控件,我们只需声明一个Public类型的属性就可以,在属性上打上一些Attribute就可以了,如下图:View Code后台代码如下:publicenumYesOrNo{No=0,Yes=1}[Personalizable(),WebBrowsable(),Category(&阅读全文
posted @ 2011-02-24 13:53 Vincent.Tianjin 阅读(191) 评论(2) 编辑