<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>YippeeSoft开心软件</title>
	<atom:link href="http://www.yippeesoft.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yippeesoft.com</link>
	<description></description>
	<lastBuildDate>Sun, 14 Feb 2010 06:47:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>开发Android第二步</title>
		<link>http://www.yippeesoft.com/blog/p/%e5%bc%80%e5%8f%91android%e7%ac%ac%e4%ba%8c%e6%ad%a5.php</link>
		<comments>http://www.yippeesoft.com/blog/p/%e5%bc%80%e5%8f%91android%e7%ac%ac%e4%ba%8c%e6%ad%a5.php#comments</comments>
		<pubDate>Tue, 09 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/%e5%bc%80%e5%8f%91android%e7%ac%ac%e4%ba%8c%e6%ad%a5.php</guid>
		<description><![CDATA[开发Android第二步，安装 java , apache ant, Eclipse 及在模拟器安装编译程序&#124;Google手机综合讨论区 &#8211; 威锋网 全球最大的iPhone论坛-WeiPhone威锋网http://bbs.weiphone.com/read.php?tid=518612

开发Android第二步，安装 java , apache ant, Eclipse 及在模拟器安装编译程序&#124;Google手机综合讨论区 &#8211; 威锋网 全球最大的iPhone论坛-WeiPhone威锋网http://bbs.weiphone.com/read.php?tid=518612开发Android第二步，安装 java , apache ant, Eclipse 及在模拟器安装编译程序

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/%e5%bc%80%e5%8f%91android%e7%ac%ac%e4%ba%8c%e6%ad%a5.php" title="开发Android第二步">阅读全文——共7158字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/%e5%bc%80%e5%8f%91android%e7%ac%ac%e4%ba%8c%e6%ad%a5.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android-Emulator</title>
		<link>http://www.yippeesoft.com/blog/p/android-emulator.php</link>
		<comments>http://www.yippeesoft.com/blog/p/android-emulator.php#comments</comments>
		<pubDate>Mon, 08 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/android-emulator.php</guid>
		<description><![CDATA[【Android-Emulator】Android模拟器介绍和基本使用 收藏 注：其中部分内容参考网上资源 

1、Android模拟器介绍 

Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的，QEMU是一个有名的开源虚拟机项目（详见http://bellard.org/qemu/），它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish，用来模拟包括下面一些功能的ARM SoC: 

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/android-emulator.php" title="Android-Emulator">阅读全文——共7511字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/android-emulator.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BT 服务器</title>
		<link>http://www.yippeesoft.com/blog/p/bt-%e6%9c%8d%e5%8a%a1%e5%99%a8.php</link>
		<comments>http://www.yippeesoft.com/blog/p/bt-%e6%9c%8d%e5%8a%a1%e5%99%a8.php#comments</comments>
		<pubDate>Sun, 07 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[bt]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/bt-%e6%9c%8d%e5%8a%a1%e5%99%a8.php</guid>
		<description><![CDATA[菜鸟脱贫 玩转BT 自架BT服务器_服务器 _天极ChinaBytehttp://www.yesky.com/446/1836946_2.shtml

西祠胡同社区 &#8211; 城市生活社区门户http://www.xici.net/main.asp?url=/b359377/d20924009.htm

MyBT让你轻松架设BT服务器 &#8211; 网易学院·教程http://tech.163.com/05/0628/11/1NB3G5K700091589.html

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/bt-%e6%9c%8d%e5%8a%a1%e5%99%a8.php" title="BT 服务器">阅读全文——共2493字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/bt-%e6%9c%8d%e5%8a%a1%e5%99%a8.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>肖老师的0BUG FREEPP ASTERISK</title>
		<link>http://www.yippeesoft.com/blog/p/%e8%82%96%e8%80%81%e5%b8%88%e7%9a%840bug-freepp-asterisk.php</link>
		<comments>http://www.yippeesoft.com/blog/p/%e8%82%96%e8%80%81%e5%b8%88%e7%9a%840bug-freepp-asterisk.php#comments</comments>
		<pubDate>Sat, 06 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[0BUG]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[FREEPP]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/%e8%82%96%e8%80%81%e5%b8%88%e7%9a%840bug-freepp-asterisk.php</guid>
		<description><![CDATA[留下印象是在 多任务环境下任务间通信模型原来是 进程间通信，一般建议就用socket方式，TCP、UDP都可以然后今天看到  从技术问题变成RPWT 实在太有趣了本书讨论的0bug，可能比大多数人讨论的严厉一点点，即产品卖出钱了，你把钱揣到包包里面，并且落袋为安，不会因为维护再花出去，这个叫做0bug。不知道他为什么把这个认为更加严厉一点点产品卖出钱了，你把钱揣到包包里面，并且落袋为安，不会因为维护再花出去这个更大意义上是商务上的事情如果商务搞定了，就做一个简单的玩意忽悠验收过去了，然后不用，那也是他声称的0BUG了2010-01-26 23:25:42 肖舸　　我的server在公网上正跑着呢，两年了，运维部门一个bug都没有报。这算不算0bug？ 看了看他的网站 FREEPPVOIP的，我很不厚道的搜索了几下这是一个销售的简历1、 普罗通信FREEPP BOX 产品针对普罗通信新推出的 FREEPP 产品，进行销售策划，开辟网上销售渠道提高产品认知度，成功售出四套。这是招聘信息招聘职位: ASTERISK工程师 1、熟悉ASTERISK、在ASTERISK开发方面有1年以上工作经验；莫非他说的SERVER就是这个？

]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/%e8%82%96%e8%80%81%e5%b8%88%e7%9a%840bug-freepp-asterisk.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Treeview增加、删除、修改、遍历等操作</title>
		<link>http://www.yippeesoft.com/blog/p/treeview%e5%a2%9e%e5%8a%a0%e3%80%81%e5%88%a0%e9%99%a4%e3%80%81%e4%bf%ae%e6%94%b9%e3%80%81%e9%81%8d%e5%8e%86%e7%ad%89%e6%93%8d%e4%bd%9c.php</link>
		<comments>http://www.yippeesoft.com/blog/p/treeview%e5%a2%9e%e5%8a%a0%e3%80%81%e5%88%a0%e9%99%a4%e3%80%81%e4%bf%ae%e6%94%b9%e3%80%81%e9%81%8d%e5%8e%86%e7%ad%89%e6%93%8d%e4%bd%9c.php#comments</comments>
		<pubDate>Fri, 05 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[treeview]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/treeview%e5%a2%9e%e5%8a%a0%e3%80%81%e5%88%a0%e9%99%a4%e3%80%81%e4%bf%ae%e6%94%b9%e3%80%81%e9%81%8d%e5%8e%86%e7%ad%89%e6%93%8d%e4%bd%9c.php</guid>
		<description><![CDATA[1．使用初步 &#160; &#160; &#160; &#160; (1)下载地址 &#160; &#160; http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp &#160; &#160; &#160; &#160; &#160; &#160; (2)不显示树型的问题 &#160; &#160; 首先：下载包分自动安装和手动安装两种包。 &#160; &#160; 要下载大小约650K &#160; 的自动安装包。 &#160; &#160; 其次：TreeView要求客户端浏览器版本为IE5.5及以上，最好要求客户端升级为IE6.0 &#160; &#160; &#160; &#160; (3)关于闪烁 &#160; &#160; 将AutoPostBack属性设置为真，SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话，将AutoPostBack属性设置为FALSE. &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; (4)常用的几个属性和方法 &#160; &#160; ～Index &#160; 获取树节点在树节点集合中的位置。 &#160; &#160; ～Nodes &#160; 获取分配给树视图控件的树节点集合。 &#160; &#160; ～Parent &#160; &#160; 获取或设置控件的父容器。 &#160; &#160; ～SelectedNode &#160; 获取或设置当前在树视图控件中选定的树节点。 &#160; &#160; ～ExpandAll &#160; 展开所有树节点。 &#160; &#160; ～Checked &#160; 获取或设置一个值，用以指示树节点是否处于选中状态。 &#160; &#160; ～Text &#160; 获取或设置在树节点标签中显示的文本。 &#160; &#160; ～Expand &#160; 展开树节点。 &#160; &#160; ～Clear &#160; 清空树 &#160; &#160; ～Remove &#160; 从树视图控件中移除当前树节点。 &#160; &#160; &#160; &#160; (5)常用的几个操作：增加、删除、修改、剪切 &#160; &#160; &#160; &#160; @增加节点： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;NdSel &#160; 为当前选定的节点,新节点将作为它的子节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.Text &#160; = &#160; &#8220;新增节点&#8221; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;在树中添加这个新节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel.Nodes.Add(tmpNd3) &#160; &#160; @删除节点： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;NdSel &#160; 为当前选定的要删除节点,tmpNd3为它的父节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; If &#160; (Treepaybasic.SelectedNodeIndex &#160; &#60;&#62; &#160; &#8220;0&#8243;) &#160; Then &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3 &#160; = &#160; NdSel.Parent &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.Nodes.Remove(NdSel) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Else &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Treepaybasic.Nodes.Clear() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; End &#160; If &#160; &#160; @修改节点： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel.Text &#160; = &#160; &#8220;aaa&#8221; &#160; &#160; @剪切和粘贴 &#160; &#160; &#160; &#160; 剪切： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;NdSel &#160; 为当前选定的要删除节点,tmpNd3为它的父节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;将剪切下来的节点存入session &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Session(&#8220;node&#8221;) &#160; = &#160; NdSel &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; If &#160; (Treepaybasic.SelectedNodeIndex &#160; &#60;&#62; &#160; &#8220;0&#8243;) &#160; Then &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3 &#160; = &#160; NdSel.Parent &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.Nodes.Remove(NdSel) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; End &#160; If &#160; &#160; 粘贴： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;NdSel &#160; 为当前要粘贴节点的父节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3 &#160; = &#160; Session(&#8220;node&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel.Nodes.Add(tmpNd3) &#160; &#160; 2.用递归生成树的算法和数据库设计 &#160; &#160; (1)递归说明 &#160; &#160; &#160; &#160; 程序调用自身的编程方法称为递归（recursion）。在树的生成以及图的遍历中，递归用的很多。经典的算法求 &#160; n! &#160; (求n的阶乘)中，用的就是递归方法。递归算法的优点就是简洁，可扩充性好。但是缺点也很明显：低效。因为递归就是程序不断调用自身，对系统的资源消耗比较大。随着节点的增多，执行效率会变的很低。 &#160; &#160; &#160; &#160; &#160; 为了解决树在生成过程中的层树不定的问题，同时也是为了让树的扩展性更好。树的生成使用了递归的方法。生成树的代码一旦写成，可以不改动源代码，生成无限级层次的树。树的结构完全由数据库中表的数据决定。 &#160; &#160; (2)数据库设计 &#160; &#160; &#160; &#160; 创建一个数据库，设计树图信息表Treetable，表中属性包含Nodeid、Parentid、Nodename、Address等字段(分别用于表示节点的ID、父节点ID、节点名称、链接地址)，其它属性根据实际用户需求和设计而定。节点名称Nodename将在树型控件的节点上显示，Nodeid字段保存节点的唯一标识号，Parentid表示当前节点的父节点ID号(例如有两个节点是父子关系，孩子节点的Parentid值就是其父节点的Nodeid)，节点号父子相接组成了一个“链表”，表征并记录了树上节点的层次结构。 &#160; &#160; 表具体设计如下：(简化模型，实际使用的要复杂一些)&#160;&#160;&#160;主键 &#160; 属性名 &#160; 类型 &#160; 长度 &#160; 可空 &#160; 属性含义 &#160; &#160; 是 &#160; Nodeid &#160; int &#160; 6 &#160; 否 &#160; 节点ID &#160; &#160; &#160; Parentid &#160; int &#160; 6 &#160; 否 &#160; 父节点ID &#160; &#160; &#160; Nodename &#160; char &#160; 50 &#160; 否 &#160; 节点名称 &#160; &#160; &#160; Address &#160; char &#160; 80 &#160; 可 &#160; 链接地址 &#160; &#160; &#160; &#160; 备注：链接地址 &#160; 主要是用在： &#160; 树在框架中使用的环境。链接可以指向其他框架页中的地址或是带不同的参数。 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; (3)程序代码 &#160; &#160; ――――――――――――递归函数―――――――――――― &#160; &#160; &#160; &#160; &#160; &#160; &#8216;生成树的函数 &#160; &#160; &#160; &#160; &#160; &#160; Private &#160; Sub &#160; inittree(ByRef &#160; Nds &#160; As &#160; Microsoft.Web.UI.WebControls.TreeNodeCollection, &#160; ByVal &#160; parentId &#160; As &#160; Integer) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; dv &#160; As &#160; New &#160; DataView() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; dvrow &#160; As &#160; DataRowView &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNode &#160; As &#160; Microsoft.Web.UI.WebControls.TreeNode &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;intId为数值型变量，其作用是记录并传递当前记录的ID，做为它子节点的PARENTID值 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; intId &#160; As &#160; Integer &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dv.Table &#160; = &#160; mySet.Tables(&#8220;paybasic&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;parentId传递的是 &#160; additem函数中的intId.下面语句的作用是找出当前节点的子孩子集合。 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dv.RowFilter &#160; = &#160; &#8220;parentID=&#8217;&#8221; &#160; &#38; &#160; parentId &#160; &#38; &#160; &#8220;&#8216;&#8221; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;如果当前节点有孩子，则遍历所有的孩子，并调用递归函数。 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; For &#160; Each &#160; dvrow &#160; In &#160; dv &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNode &#160; = &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;为当前节点的各个属性赋值。 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNode.ID &#160; = &#160; dvrow(&#8220;nodeID&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNode.Text &#160; = &#160; dvrow(&#8220;nodename&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNode.NavigateUrl &#160; = &#160; dvrow(&#8220;Address&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; intId &#160; = &#160; dvrow(&#8220;parentID&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;添加一个节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Nds.Add(tmpNode) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;调用递归函数 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; inittree(Nds(Nds.Count &#160; &#8211; &#160; 1).Nodes, &#160; intId) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Next &#160; &#160; End &#160; Sub &#160; &#160; ――――――――――――――――调用递归函数―――――――――――――――――― &#160; &#160; CreateReaderDataSet() &#160; &#160; inittree(Treepaybasic.Nodes, &#160; 999) &#160; &#160; ―――――――――――――――――生成数据集――――――――――――――――――― &#160; &#160; &#160; &#160; &#160; &#160; &#8216;生成数据集的函数 &#160; &#160; &#160; &#160; &#160; &#160; Private &#160; Sub &#160; CreateReaderDataSet() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;在运行时连接，并设置连接属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; MyConn &#160; = &#160; New &#160; System.Data.OleDb.OleDbConnection(&#8220;Provider=MSDAORA.1;Data &#160; Source=oracle9;User &#160; ID=user;Password=****;&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;设置SelectCommand命令 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; myAdapter.SelectCommand &#160; = &#160; New &#160; System.Data.OleDb.OleDbCommand(&#8220;select &#160; * &#160; from &#160; treenode&#8221;, &#160; MyConn) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;填充数据集 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; myAdapter.Fill(mySet, &#160; &#8220;treenode&#8221;) &#160; &#160; &#160; &#160; &#160; &#160; End &#160; Sub &#160; &#160; 与数据库相关的节点操作： &#160; &#160; （1）添加节点 &#160; &#160; &#160; &#160; 1.1 &#160; 节点的树型添加 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; //程序的功能是在点击的节点下面添加新节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; NdSel &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;NdSel &#160; 为当前选定的要删除节点,tmpNd3为它的父节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;要添加的节点的各个属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.ID &#160; = &#160; 111 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.Text &#160; = &#160; &#8220;aaa&#8221; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;用nodes.add添加节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; NdSel.Nodes.Add(tmpNd3) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 1.2 &#160; 数据库中的节点添加操作 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; //数据库连接语句在此省略 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;在运行时连接，并设置连接属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; insertcomm &#160; = &#160; New &#160; System.Data.OleDb.OleDbCommand() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;定义存储命令的各种属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; insertcomm.CommandText &#160; = &#160; &#8220;insert &#160; into &#160; treebasic（id,parentid,name) &#160; &#160; &#160; &#160; &#160; &#160; values(&#8216;&#8221; &#160; &#38; &#160; pid &#160; &#38; &#160; &#8220;&#8216;,&#8217;&#8221; &#160; &#38; &#160; parid &#160; &#38; &#160; &#8220;&#8216;,&#8217;&#8221; &#160; &#38; &#160; nodetext &#160; &#38; &#160; &#8220;&#8216;)&#8221; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; insertcomm.Connection &#160; = &#160; MyConn &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;打开连接、执行命令 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; MyConn.Open() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; insertcomm.ExecuteNonQuery() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; MyConn.Close() &#160; &#160; （2）修改节点 &#160; &#160; &#160; &#160; 2.1 &#160; 节点属性的树型修改 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; tmpNd3 &#160; As &#160; New &#160; Microsoft.Web.UI.WebControls.TreeNode() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;tmpNd3 &#160; 为当前选定的节点 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3 &#160; = &#160; Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tmpNd3.Text &#160; = &#160; &#8220;aaa&#8221; &#160; &#160; &#160; &#160; 2.2 &#160; 数据库中的节点属性修改操作 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;定义修改命令的属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Dim &#160; updatecomm &#160; = &#160; New &#160; System.Data.OleDb.OleDbCommand() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;定义修改命令的各种属性 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; updatecomm.CommandText &#160; = &#160; &#8220;update &#160; treebasic &#160; set &#160; name=&#8217;&#8221; &#160; &#38; &#160; nodetext &#160; &#38; &#160; &#8220;&#8216; &#160; ,remark=&#8217;&#8221; &#160; &#38; &#160; remark &#160; &#38; &#160; &#8220;&#8216; &#160; ,links=&#8217;&#8221; &#160; &#38; &#160; purl &#160; &#38; &#160; &#8220;&#8216; &#160; where &#160; payid=&#8221; &#160; &#38; &#160; CInt(pid) &#160; &#38; &#160; &#8220;&#8221; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; updatecomm.Connection &#160; = &#160; MyConn &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;打开连接、执行命令 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; MyConn.Open() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; updatecomm.ExecuteNonQuery() &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; MyConn.Close() &#160; &#160; &#160; &#160; &#160; &#160; 查找节点并展开的例子，你看看： &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Private &#160; Sub &#160; findandexpand_Click(ByVal &#160; sender &#160; As &#160; System.Object, &#160; ByVal &#160; e &#160; As &#160; System.EventArgs) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Handles &#160; Button1.Click &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;Treepaybasic.Nodes(0) &#160; 为树的跟节点,从根节点找起 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; If &#160; (Treepaybasic.Nodes(0).Text &#160; = &#160; Me.TextBox1.Text) &#160; Then &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Treepaybasic.SelectedNodeIndex &#160; = &#160; &#8220;0&#8243; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Else &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#8216;要找的节点不是根节点，调用递归函数查找 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; findnode(Treepaybasic.Nodes) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; End &#160; If &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; End &#160; Sub &#160; &#160; &#160; &#160; &#160; &#8216;查找节点的函数&#160;&#160;

]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/treeview%e5%a2%9e%e5%8a%a0%e3%80%81%e5%88%a0%e9%99%a4%e3%80%81%e4%bf%ae%e6%94%b9%e3%80%81%e9%81%8d%e5%8e%86%e7%ad%89%e6%93%8d%e4%bd%9c.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLite faq</title>
		<link>http://www.yippeesoft.com/blog/p/sqlite-faq.php</link>
		<comments>http://www.yippeesoft.com/blog/p/sqlite-faq.php#comments</comments>
		<pubDate>Thu, 04 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[sqlite]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/sqlite-faq.php</guid>
		<description><![CDATA[(1) 如何创建自增字段？



简单的回答：一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/sqlite-faq.php" title="SQLite faq">阅读全文——共6581字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/sqlite-faq.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLite内建函数表</title>
		<link>http://www.yippeesoft.com/blog/p/sqlite%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e8%a1%a8.php</link>
		<comments>http://www.yippeesoft.com/blog/p/sqlite%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e8%a1%a8.php#comments</comments>
		<pubDate>Wed, 03 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[sqlite]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/sqlite%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e8%a1%a8.php</guid>
		<description><![CDATA[SQLite内建函数表





<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/sqlite%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e8%a1%a8.php" title="SQLite内建函数表">阅读全文——共582字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/sqlite%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e8%a1%a8.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>excel tip 1</title>
		<link>http://www.yippeesoft.com/blog/p/excel-tip-1.php</link>
		<comments>http://www.yippeesoft.com/blog/p/excel-tip-1.php#comments</comments>
		<pubDate>Tue, 02 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[excel]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/excel-tip-1.php</guid>
		<description><![CDATA[Excel排序技巧汇总http://www.360doc.com/content/10/0128/13/458330_14582103.shtml

excel筛选怎么用？_百度知道http://zhidao.baidu.com/question/53340257.html?fr=ala0

Excel筛选功能应用-软件频道-Excel-天极网http://www.yesky.com/109/1721109.shtml

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/excel-tip-1.php" title="excel tip 1">阅读全文——共1110字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/excel-tip-1.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IScrollInfo wpf</title>
		<link>http://www.yippeesoft.com/blog/p/iscrollinfo-wpf.php</link>
		<comments>http://www.yippeesoft.com/blog/p/iscrollinfo-wpf.php#comments</comments>
		<pubDate>Mon, 01 Feb 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[IScrollInfo]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/iscrollinfo-wpf.php</guid>
		<description><![CDATA[WPF数据绑定之数据模板_Asp.net教程_.Net教程_Vb.net教程_Vc.net_C#编程http://dotnet.chinaitlab.com/ASPNET/769410_4.html

在WPF中，让button显示为一个Image &#8211; cruelchen的日志 &#8211; 网易博客http://cruelchen.blog.163.com/blog/static/786918442009112352149525/

WPF中的传递事件http://www.360doc.com/content/07/0910/23/37777_734492.shtml

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/iscrollinfo-wpf.php" title="IScrollInfo wpf">阅读全文——共2360字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/iscrollinfo-wpf.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mouse.MoveTo</title>
		<link>http://www.yippeesoft.com/blog/p/mouse-moveto.php</link>
		<comments>http://www.yippeesoft.com/blog/p/mouse-moveto.php#comments</comments>
		<pubDate>Sun, 31 Jan 2010 02:54:26 +0000</pubDate>
		<dc:creator>yippee</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[Mouse]]></category>

		<guid isPermaLink="false">http://www.yippeesoft.com/blog/p/mouse-moveto.php</guid>
		<description><![CDATA[Ivo Manolov&#8217;s Blog : Introduction to TestApi – Part 1: Input Injection APIshttp://blogs.msdn.com/ivo_manolov/archive/2008/12/15/9223397.aspx

Simulate mouse Enter/Move/Leave on WPF control without real mouse usagehttp://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0555c1ea-5b0f-4c5e-863c-b54eb510ad40Point screenCoordinates = this.sayHello.PointToScreen(new Point(0, 0));Size size = new Size(this.sayHello.ActualWidth, this.sayHello.ActualHeight);

<span class="readmore"><a href="http://www.yippeesoft.com/blog/p/mouse-moveto.php" title="Mouse.MoveTo">阅读全文——共3271字</a></span>]]></description>
		<wfw:commentRss>http://www.yippeesoft.com/blog/p/mouse-moveto.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
