onekey

专注.NET技术
posts - 12, comments - 20, trackbacks - 0, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2007年7月11日

       最近做一个项目,中间有蓝牙打印部分,可能是老外不重视中国市场的原因,对于中文和英文的混打没有作处理。无奈之举只好做了如下转换程序,把需要打印的内容全部转换成中文(全角):

 /// <summary>
       /// 全角转半角
       /// </summary>
       /// <param name="QJstr"></param>
       /// <returns></returns>
       public static string GetBanJiao(string QJstr)
       {
           char[] c = QJstr.ToCharArray();
           for (int i = 0; i < c.Length; i++)
           {
               byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
               if (b.Length == 2)
               {
                   if (b[1] == 255)
                   {
                       b[0] = (byte)(b[0] + 32);
                       b[1] = 0;
                       c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
                   }
               }
           }
           return new string(c);
       }
       /// <summary>
       /// 半角转全角
       /// </summary>
       /// <param name="QJstr"></param>
       /// <returns></returns>
       public static string GetQuanJiao(string QJstr)
       {
           char[] c = QJstr.ToCharArray();
           for (int i = 0; i < c.Length; i++)
           {
               if (c[i] == ' ')
                   c[i] = ' ';

               byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
               if (b.Length == 2)
               {
                   if (b[1] == 0)
                   {
                       b[0] = (byte)(b[0] - 32);
                       b[1] = 255;
                       c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
                   }
               }
           }
           return new string(c);
       }

posted @ 2007-07-11 16:36 onekey 阅读(91) | 评论 (1)编辑

2007年4月4日

地址:http://adobedev.adobe.acrobat.com/p56692696/

posted @ 2007-04-04 13:59 onekey 阅读(103) | 评论 (0)编辑

2007年1月21日

http://blog.csdn.net/shenglijay发表于CSDN,转贴过来备自己察看

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. onpaste="return false" 不准粘贴

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode:disabled"> 关闭输入法

8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>

9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. 网页将不能被另存为
<noscript><iframe src="/blog/*.html>";</iframe></noscript>

11. <input type=button value=查看网页源代码
onclick="window.location = "view-source:"+ "http://www.williamlong.info"">

12.删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>

13. 取得控件的绝对位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
alert("top="+t+"/nleft="+l);
}
</script>

//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>

14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判断上一页的来源
javascript:
document.referrer
16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE

17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
}
document.onkeydown=look;
</script>

18. 网页不会被缓存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">

19.怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:

1 solid #000000"></textarea>

20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>

21.让弹出窗口总是在最上面:
<body onblur="this.focus();">

22.不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>

23.怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="/blog/logo.jpg" border=0></a>

24.电子邮件处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>

25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()

26.如何设定打开页面的大小
<body onload="top.resizeTo(300,200);">
打开页面的位置<body onload="top.moveBy(300,200);">

27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(/blog/logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>

28. 检查一段字符串是否全由数字组成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

30. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

31.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

32. 日期减去天数等于第二个日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

34.脚本永不出错
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
</SCRIPT>

35.ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">
36. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value="/blog/测试中......>" =》<input type=text
name=url"+i+" size=40> =》<input type=button value=GO

onclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url)
else

b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1

onerror=auto("http://"+autourl+"")>")}
run()</script>

37. 各种样式的光标
auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

38.页面进入和退出的特效
进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使用哪种特效,取值为1-23:
  0 矩形缩小
  1 矩形扩大
  2 圆形缩小
  3 圆形扩大
  4 下到上刷新
  5 上到下刷新
  6 左到右刷新
  7 右到左刷新
  8 竖百叶窗
  9 横百叶窗
  10 错位横百叶窗
  11 错位竖百叶窗
  12 点扩散
  13 左右到中间刷新
  14 中间到左右刷新
  15 中间到上下
  16 上下到中间
  17 右下到左上
  18 右上到左下
  19 左上到右下
  20 左下到右上
  21 横条
  22 竖条
  23 以上22种随机选择一种

39.在规定时间内跳转
<META http-equiv=V="REFRESH" content="5;URL=http://www.williamlong.info">

40.网页是否被检索
<meta name="ROBOTS" content="属性值">
  其中属性值有以下一些:
  属性值为"all": 文件将被检索,且页上链接可被查询;
  属性值为"none": 文件不被检索,而且不查询页上的链接;
  属性值为"index": 文件将被检索;
  属性值为"follow": 查询页上的链接;
  属性值为"noindex": 文件不检索,但可被查询链接;
  属性值为"nofollow": 文件不被检索,但可查询页上的链接。

最大化窗口?
<script language="JavaScript">
<!--
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
//-->
</script>

 


解决问题:由于层与下拉框之间的优先级是:下拉框 > 层,因此在显示的时候,会因为优先级的次序而会出现如上问题。(如果几个元素都是层的话,我们可以通过层的 z-index 属性来设置)解决办法就是:给层中放一个优先级比下拉框更高的元素(iframe),从而解决此问题!具体解决代码如下:

<div id="menu" style="position:absolute; visibility:hidden; top:20px; left:20px; width:100px; height:200px; background-color:#6699cc;">
<table>
  <tr><td>item 1</td></tr>
  <tr><td>item 2</td></tr>
  <tr><td>item 3</td></tr>
  <tr><td>item 4</td></tr>
  <tr><td>item 5</td></tr>
  </table>
  <iframe src="/blog/javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; width:100px; height:200px; z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';"></iframe>
</div>

<a href="#" onclick="document.getElementById('menu').style.visibility='visible'">menu</a>

<form>
  <select><option>A form selection list</option></select>
</form>

输入框也可以做的很漂亮了
<div align="center"><input type="hidden" name="hao" value="yes">
              外向数:<input
      name=answer
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
             没回答的题数:<input
      name=unanswer id="unanswer"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
            <br/>
            总得分:
            <input
      name=score id="score"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
             结    论:
            <input
      name=xgjg id="xgjg"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
            <br/>
            <br/>
           
            <input onClick=processForm(this.form) style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" type=button value=查看结果 name="button">
             <input type="reset" name="Submit" value="重做">
            </div>
注意:修改<body>为<body onload="max.Click()">即为打开最大

化窗口,而如果改为<body onload="min.Click()">就变为窗口一打开就最小化

<object id="min" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
            <param name="Command" value="Minimize">
          </object> <object id="max" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
            <param name="Command" value="Maximize">
          </object>
</body>

页面自动刷新(说明)

当你做网页时,是不是有的时候想让你的网页自动不停刷新,或者过一段时间自动跳转到另外一个你自己设定的页面?其实实现这个效果非常地简单,而且这个效果甚至不能称之为特效。你只要把如下代码加入你的网页中就可以了。

1,页面自动刷新:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20">,其中20指每隔20秒刷新一次页面.

2,页面自动跳转:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20;url=http://www.williamlong.info">,其中20指隔20秒后跳转到http://www.williamlong.info页面。

页面自动关闭

5000是指时间<body onLoad="setTimeout(window.close, 5000)">

弹出窗口自动关闭

10秒后弹出窗口自动关闭

注意:在新的tan.htm的body中要加 <onLoad="closeit()">
head

<script language="JavaScript">

<!--

var gt = unescape('%3e');

var popup = null;

var over = "Launch Pop-up Navigator";

popup = window.open('', 'popupnav', 'width=225,height=235,resizable=1,scrollbars=auto');

if (popup != null) {

if (popup.opener == null) {

popup.opener = self;

}

popup.location.href = 'tan.htm';

}

// -->

</script>
<body>注意:这段代码是在新建文件中的
<script language="JavaScript">

 function closeit()

 </script>

这个可不是<iframe>(引用)呀。是直接调用的。以下代码加入<body>区域

<object type="text/x-scriptlet" width="800"  height="1000" data="../index.htm">
</object>

posted @ 2007-01-21 18:17 onekey 阅读(60) | 评论 (0)编辑

2006年10月30日

最近在学习GIS,就做了个例子,把Sharpmap移植到PPC2003上面(只实现了简单的功能)。源代码如下:下载
(本程序仅供学习使用)

在PPC2003模拟器上面运行时,加载1个图层(6000多个点)时速度比较慢(15S),这个地方有什么好的解决办法么?

(呵呵,不知道这样做是否造成侵权?)完整的Sharpmap源码请参考sharpmap.iter.dk



posted @ 2006-10-30 16:38 onekey 阅读(572) | 评论 (5)编辑

2006年7月11日

posted @ 2006-07-11 16:59 onekey 阅读(68) | 评论 (0)编辑

2006年5月4日

今天在导入一个MDB文件到SQLSERVER2005的时候出现一个怪问题,
刚开始选择全部导入的时候发生错误,有9个表提示失败。
后来我为了检查错误,每次导入10个表,居然全部都没有问题,
真实奇怪了。并且我的数据量也不大啊。
希望那位达人能指点问题所在,下面是我用的MDB数据库:
/Files/onekey/shop.rar
 

posted @ 2006-05-04 16:24 onekey 阅读(268) | 评论 (1)编辑

本文陈述了为什么你应该升级到SQLServer2005的最重要的10大理由。这个最新版的SQLServer在管理工作间、SSIS,以及内置的商业智能等方面有了多项提高。

大多数的IT专家都在使用SQLServer2000,并仍在为SQLServer7数据库提供支持,(有一些人甚至还在支持SQLServer6.5数据库)。随着SQLServer2005的到来,我们常常被问到:我应该升级吗?在本文里,我们列出了为什么你应该升级到SQLServer2005的10个最重要的理由。

1.现在仍在使用的所有东西仍然能够(在某种程度上)继续使用。
SQLServer2005的管理工作间(Management Studio)将让你对SQLServer2000和SQLServer2005的数据库进行控制。管理工作间无法用于SQLServer6.5和7.0,但是将其移植到可以兼容的版本是很容易的。

由于兼容性的问题,有一些东西无法很容易地移植到管理工作间。例如,如果你的SQLServer2000数据库含有图表,那么在没有升级数据库的情况下你是无法使用这些图表的。

2SQLServer2005带有更多的组件。
SQLServer先前的版本以多种不同的方式打包了多个不同的组件。例如,无所不包的企业版捆绑了所有的东西,但是你可能没有机会用到这个版本。SQLServer2000版里没有包括分析服务(Analysis Services)——所以你必须单独购买这个组件。

微软已经改变其市场策略,把所有的组件都捆绑到一个程序包里。SQLServer2005的价格要比先前的版本高,但仍然是非常划算的。如果你参加了SQLServer2005的发售仪式,微软会送给你一个免费的版本——无任何附加条件的。

3.各不相同的用户界面统一成了一个。
在以前,企业管理器(Enterprise Manager)和查询分析器(Query Analyzer)、报告服务(Reporting Services)和数据转换服务(Data Transformation Services,DTS)都是单独的应用程序,它们的界面完全不统一。管理工作间为你提供了一个整洁的用户界面,让你能够访问到所有的组件,甚至是在线的分析处理(online analytical processing,OLAP)和SQLServer集成服务(SQL Server Integration Services,SSIS),而不论组件所属的是哪种Server。这就带来了更高的生产效率和更加低廉的培训成本。即使你选择以SQLServer2000的格式来维持数据库,你仍然能够使用全新的用户界面来完成自己的各项工作。

4.让.NET语言来承担主要工作。
T-SQL仍然是用来完成你90%任务的工具,但是某些任务要求特别的精确;在这些情况下,T-SQL就显得尤为不足了。这样的例子包括逐行控制(row-by-row control),尤其是你必须要将当前的行与先前的行进行比较,并在一个过程里写入多个表格的时候。你可以在T-SQL里完成这个任务。因此,你可以会发现让.NET的行集来处理非常复杂的逻辑会更简单。我们不建议你匆忙运行并重写.NET里的所有存储过程;而应该把它当作是新加进来的好东西,而不是对T-SQL的替换。

5.你可以利用报告服务的优势。
我们可以对“后端能做的一切后端都应该做到”这一原则进行一些修正。例如我们认为在应用程序里构建动态的SQLServer查询常常是很无聊的事。有的时候,更好更安全的方式是用前端的应用程序来集中参数,然后调用存储过程,这是很有必要的。

SQLServer2005的报告服务把这一概念扩展到了另外一个层次。在SQLServer2000和更早一些的版本里,报告是由各种不同的前端应用程序(C++、VB、Delphi、Access、Crystal Reports等等)来发布的。你可以把这一功能放到报告服务里,因为它具有无与伦比的优势。首先,你从给定前端获得所有的逻辑。然后,你使用事实上来自任何前端的报告服务,这就意味着你的应用程序开发人员能够从应用程序里删掉很多代码。这是关于所有可能用户界面的一个报告,这也就是说如果报告里有错误,你一旦修补好了,而所有的用户面将会继承这个修补程序。

6.内置商业智能。
商业智能(Business Intelligence,OLAP)并没有内置在先前的SQLServer里,除非你购买的是企业版的SQLServer2000。即使能够承担得起这一笔费用,你也必须重新学习一个全新的界面。如果使用SQLServer2005的话,你可以完成以前能够完成的所有任务,而使用的是一个整洁和集成的用户界面。

7.告别DTS,迎接SSIS
SQLServer2005用一项名为SSIS的新技术取代了DTS,前者是一个巨大的突破。我们认为SSIS最酷的地方是,数据转换现在成了SSIS的一个对象。最后,你可以真正地进行流控制和错误处理,方式是建立提取、转换和加载(ETL)操作以外的任务。

8.使用升级指导进行智能升级。
SQLServer2005引入了新的功能,并对已有的功能进行了改变,以帮助提高性能、安全和可管理性。这些变化可能会影响到你原有的应用程序。这就是为什么微软的SQLServer小组开发出升级指导(Upgrade Advisor)的原因。它会智能地引导你完成升级过程,并列出可能会出现的任何兼容性问题。

9.你现在随时对安全进行微小的调整。
由于加入了专门的数据库架构,并增加了分派某些管理任务而不需要让所有的开发人员和初级DBA都成为一个全知全能的高级架构师的能力,因此通过只给予用户完成他们的任务所需要的权限,你可以极大地增强SQLServer2005 的安全性。(无可否认的是,有些开发人员可能认为这不是进行升级的一个好理由。)

10.来自企业可伸缩性的益处。
SQLServer2000存在一些企业可伸缩性的问题,但是这对于SQLServer2005来说已经不成问题。看来SQLServer2005准备用自己的利器来对付Oracle和DB/2的企业级产品。不管你怎么算成本(不论是按每个处理器算还是按每个客户算),它总是要比Oracle和DB/2的成本低得多。

总结

即使你不一定需要立即从SQLServer7或者2000上进行迁移,但是你应该安装SQLServer2005,因为它所带来的好处是巨大的。你可以继续管理SQLServer2000的数据库,而不需要对它进行转换,同时还能够享受到SQLServer2005带来的强大的新特性。只要使用一下SQLServer的管理工作间,你就会忘掉企业管理器和查询分析器。它们将很快步CP/M的后尘。

posted @ 2006-05-04 15:28 onekey 阅读(172) | 评论 (0)编辑

2005年12月29日

   最近一个项目用到向终端发送数据的方法,终端是16位(4字节)的。所以需要把Int型转换为32位的,在终端按照4个字节读出,写了下面的转换方法:

 1public static class MyMath
 2{
 3    /**
 4     * 把一个整数转化为byte array
 5     * 
 6     * @param num
 7     *            待转化的整数
 8     * @param len
 9     *            长度
10     * @return byte array
11     */

12    public static  byte[] intToBytes(int num, int len)
13    {
14        byte[] b = new byte[len];
15        int sw = ((len - 1* 8);
16        int mask = (0xff << sw);
17        for (int l = 0; l < len; l++)
18        {
19            b[l] = (byte)(((uint)num & mask) >> sw);
20            sw -= 8;
21            mask >>= 8;
22        }

23        return b;
24    }

25
26    /**
27     * 把byte [] 转化为int
28     * 
29     * @param b
30     *            byte[]
31     * @param offset
32     *            开始位置
33     * @param size
34     *            长度
35     * @return int
36     */

37   public static int bytesToInt(byte[] b, int offset, int size) {
38        int num = 0;
39        int sw = 8 * (size - 1);
40        for (int loop = 0; loop < size; loop++{
41            num |= ((int) b[offset + loop] & 0x00ff<< sw;// 整数太大,清零
42            sw -= 8;
43        }

44        return (num);
45    }

46}

测试:

 int iPut = 44;
        byte[] b = MyMath.intToBytes(iPut, 4);

        int i = MyMath.bytesToInt(b, 0, 4);

posted @ 2005-12-29 10:46 onekey 阅读(245) | 评论 (0)编辑

2005年7月2日

详细代码请查看:http://www.gnu.org/copyleft/lesser.html
这个函数库可以用来在页面上划线,拉框,还有其他的功能我没有用到就先不说了。
对做工作流的页面设计很有用

posted @ 2005-07-02 09:41 onekey 阅读(1366) | 评论 (1)编辑

2004年12月28日

1.转换字符串为枚举型:

枚举:

          public enum Subject
                {
                   None = 0,
                  Logon = 1,
                  Logoff = 2,
                  Ready = 3,
                }

可以这样进行转换:

Subject subject=(Subject)Enum.Parse(typeof(Subject),"Logon");

switch(subject)
   {
    case Subject.Logoff :
     DoLogoff();
     break;

    case Subject.Logon:
     DoLogon();
     break;   

...........................

2. //大写字符串的首个字符
  private string UpperFirstChar(string str)
  {
   if(str == "")
    return "";

   if(!Char.IsUpper(str,0))
   {
    str = str.Substring(0,1).ToUpper() + str.Substring(1);
   }
   
   return str;
  }

VB.Net支持这个方法StrConv("abcdefg", VbStrConv.ProperCase),同样可以大写首个字母,不知道C#中有没有?

posted @ 2004-12-28 13:37 onekey 阅读(547) | 评论 (0)编辑

2004年9月14日

FillDataset(SqlConnection connection, CommandType commandType,
 string commandText, DataSet dataSet, string[] tableNames)
当调用此方法,并指定映射表名数组,对应参数tableNames
若元素超过3个,即指定表名超过3个时,从第3个表名开始返回的将是系统默认的表名
而非用户指定的表名(如,指定"header" "detail" "relation",第3个返回了Table2)

此Bug原因在这里:
private static void FillDataset(SqlConnection connection, SqlTransaction transaction, CommandType commandType,
   string commandText, DataSet dataSet, string[] tableNames,
   params SqlParameter[] commandParameters)
{
...
string tableName = "Table";
     for (int index=0; index < tableNames.Length; index++)
     {
      if( tableNames[index] == null || tableNames[index].Length == 0 ) throw new ArgumentException( "The tableNames parameter must contain a list of tables, a value was provided as null or empty string.", "tableNames" );
      dataAdapter.TableMappings.Add(tableName, tableNames[index]);
 tableName += (index + 1).ToString(); //若超过3个表,则
     tableName会变成Table11,Table111,返回映射表名即为Table2,Table3了
     解决方法即在此句前面加“tableName = "Table";”即可
     }
...
}


posted @ 2004-09-14 14:39 onekey 阅读(987) | 评论 (0)编辑

2004年8月25日

     摘要: 在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类,System.Management下面的一些WMI操作的类。虽然用ServiceController可以很方便的实现对服务的控制,而且很直观、简洁和容易理解。但是我认为他的功能同通过WMI来操作服务相... 阅读全文

posted @ 2004-08-25 18:43 onekey 阅读(1005) | 评论 (5)编辑