﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-飘着的叶子，什么时候才落地-随笔分类-sql</title><link>http://www.cnitblog.com/piaoye12345/category/1033.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 07 Oct 2011 09:18:27 GMT</lastBuildDate><pubDate>Fri, 07 Oct 2011 09:18:27 GMT</pubDate><ttl>60</ttl><item><title>如何用hash关键字提高数据库性能</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/05/31/11323.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Wed, 31 May 2006 07:22:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/05/31/11323.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/11323.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/05/31/11323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/11323.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/11323.html</trackback:ping><description><![CDATA[
		<p style="TEXT-INDENT: 2em">普通的SQL Server应用程序要求支持一个或几个长字符串搜索。（本文中，我们称超过20个字符的字符串为长字符串。）假如前端应用程序希望允许用户提供两个字符串；你启动一个执行这两个字符串搜索任务的存储程序，然后应用两个相关列目录对搜索进行优化。在小型的表格中，你可能注意不到产生的效果。但是，如果表格包含5 000万行，它就会影响存储程序与搜索性能。</p>
		<p>　　应用称为hash关键字（引用单独一个hash）或hash桶（一个hash关键字集合）的字符串目录的优秀方法可大大节省磁盘空间并提高性能。</p>
		<p>　　何为hash（hash）</p>
		<p>　　hash是应用一个指定字符串算法的整数结果。有各式各样的hash算法，但最常用的是内置的SQL函数Checksum()。通常，你给这个函数一个字符串，它就返回一个整数（在大型表格中，我们不能保证这个整数的唯一性）。</p>
		<p>　　数据库设计中的hash表格</p>
		<p>　　假设在我们感兴趣的表格中有这些列：</p>
		<table bordercolor="#999999" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr>
								<td width="108">
										<p class="style2" align="center">列名</p>
								</td>
								<td width="149">
										<p class="style2" align="center">数据类型</p>
								</td>
						</tr>
						<tr>
								<td width="108">
										<p class="style2" align="center">名称</p>
								</td>
								<td width="149">
										<p class="style2" align="center">Varchar(50)</p>
								</td>
						</tr>
						<tr>
								<td width="108">
										<p class="style2" align="center">组名称</p>
								</td>
								<td width="149">
										<p class="style2" align="center">Varchar(50)</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p>　　这两个列的多列目录每行会耗用50+50个字符，加上上面提到的5 000万行，这可是个相当大的难题。</p>
		<p>　　基于这两个列的hash关键字相当的小，即每行四个字节。如果我们不将hash关键字存储在这一列的目录中，它还会更小。相反，我们应该建立一个计算列，该列的公式是这两个列的hash关键字，然后将那个列编入目录并忽视字符串对的目录。</p>
		<p>　　用户（不管是人还是应用程序）查询感兴趣的值；然后我们将参数转换为hash关键字并搜索hash目录。副本集合要比引擎必须访问的行集合小得多，以便对查询值进行精确匹配。然后将hash关键字搜索与两个感兴趣的列的比较结合起来，隔离出一个小型的行子集，并对两个列进行检验，找出匹配值。基于整数列的搜索比基于长字符串关键字的搜索要快得多，同样也比复合关键字搜索快得多。</p>
		<p>　　应用Checksum函数作hash关键字运算</p>
		<p style="TEXT-INDENT: 2em">尝试运行这段样本代码，它表明如何获得指定值或值组合的hash关键字：</p>
		<p>
		</p>
		<center>
				<ccid_nobr>
						<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
								<tbody>
										<tr>
												<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
														<pre>USE AdventureWorks<br />SELECT Name, GroupName, Checksum(Name,GroupName)AS HashKey<br />FROM Adventureworks.HumanResources.Department<br />ORDER BY HashKey</pre>
												</td>
										</tr>
								</tbody>
						</table>
				</ccid_nobr>
		</center>
		<p>
		</p>
		<p>　　所得的结果显示在下表中（为求简洁，只选用了10个结果）。</p>
		<p>
		</p>
		<table bordercolor="#999999" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr>
								<td width="146">
										<p class="style2">名称</p>
								</td>
								<td width="189">
										<p class="style2">组名称</p>
								</td>
								<td width="189">
										<p class="style2">hash关键字</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">工具设计</p>
								</td>
								<td width="189">
										<p class="style2">研究与开发</p>
								</td>
								<td width="189">
										<p class="style2">-2142514043</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">生产</p>
								</td>
								<td width="189">
										<p class="style2">制造</p>
								</td>
								<td width="189">
										<p class="style2">-2110292704</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">发货与收货</p>
								</td>
								<td width="189">
										<p class="style2">存货管理</p>
								</td>
								<td width="189">
										<p class="style2">-1405505115</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">购买</p>
								</td>
								<td width="189">
										<p class="style2">存货管理</p>
								</td>
								<td width="189">
										<p class="style2">-1264922199</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">文件控制</p>
								</td>
								<td width="189">
										<p class="style2">质量保证</p>
								</td>
								<td width="189">
										<p class="style2">-922796840</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">信息服务</p>
								</td>
								<td width="189">
										<p class="style2">总执行管理</p>
								</td>
								<td width="189">
										<p class="style2">-904518583</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">质量保证</p>
								</td>
								<td width="189">
										<p class="style2">质量保证</p>
								</td>
								<td width="189">
										<p class="style2">-846578145</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">销售</p>
								</td>
								<td width="189">
										<p class="style2">销售与营销</p>
								</td>
								<td width="189">
										<p class="style2">-493399545</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">生产控制</p>
								</td>
								<td width="189">
										<p class="style2">制造</p>
								</td>
								<td width="189">
										<p class="style2">-216183716</p>
								</td>
						</tr>
						<tr>
								<td width="146">
										<p class="style2">营销</p>
								</td>
								<td width="189">
										<p class="style2">销售与营销</p>
								</td>
								<td width="189">
										<p class="style2">-150901473</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p>　　在现实环境中，你可以建立一个调用Name_GroupName_hb的计算列。假设前端传入名称（Name）与组名称（GroupName）的目标值，你就可以用下列代码来处理这一问题：</p>
		<p>
		</p>
		<center>
				<ccid_nobr>
						<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
								<tbody>
										<tr>
												<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
														<pre>CREATE PROCEDURE DemoHash<br />( ?@Name Varchar(50), ?@GroupName Varchar(50)<br />)<br />AS<br />-- USE AdventureWorks<br />DECLARE @id as int SET @id = Checksum(@Name,@GroupName)<br />SELECT * FROM Adventureworks.HumanResources.Department<br />WHERE HashKey = @id <br />AND Name = @Name <br />AND GroupName = @GroupName</pre>
												</td>
										</tr>
								</tbody>
						</table>
				</ccid_nobr>
		</center>
		<p>
		</p>
		<p>　　想象一下，在一个5 000万行的表格中，返回了100行指定的hash关键字。由于这两个列没有其它的目录，查询优化器就应用hash桶目录。这样就可以快速地隔离出100个感兴趣的行。然后我们访问这些行，检验名称（Name）与组名称（GroupName）列来进行精确匹配。这样就大大提高了性能，同时节省了大量的磁盘空间。</p>
		<p>　　引例假设搜索目标存在于一个单独的表格中。假如要从多个表格中选择目标来进行搜索，也可以应用同样的技巧。只需建立一个连接表格的表格函数，然后建立一个hash不同表格列的目录即可。</p>
		<p>　　结论</p>
		<p>　　在相对较小的表格中，建立一个目录hash桶对于提高性能可能没有太大的作用，但这样做可节省磁盘空间。如果你使用大型的表格，本技巧就极为实用。</p>
		<p>　　Arthur Fuller从事数据库应用程序开发20余年。在Access ADP、微软SQL 2000、MySQL和.NET方面有丰富的经验。</p>
<img src ="http://www.cnitblog.com/piaoye12345/aggbug/11323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-05-31 15:22 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/05/31/11323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Sql server]某外企SQL Server面试题</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/05/17/10659.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Wed, 17 May 2006 09:01:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/05/17/10659.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/10659.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/05/17/10659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/10659.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/10659.html</trackback:ping><description><![CDATA[
		<a class="f1">
				<font face="Verdana">
						<strong>Question 1：Can you use a batch SQL or store procedure to calculating the Number of Days in a Month</strong>
				</font>
		</a>
		<p>
		</p>
		<p>
				<font face="Verdana">
						<font face="Times New Roman">　　</font>
						<strong>Answer 1：</strong>找出当月的天数<br />select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>　　Question2：Can you use a SQL statement to calculating it!</strong>
						<br />How can I print "10 to 20" for books that sell for between $10 and $20，"unknown" for books whose price is null, and "other" for all other prices?</font>
		</p>
		<p>
				<font face="Verdana">　　<strong>Answer 2：</strong><br />　　select bookid,bookname,price=case when price is null then 　　'unknown' <br />       when  price between 10 and 20 then '10 to 20' else price end<br />from books</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>　　Question3：Can you use a SQL statement to finding duplicate 　　values!<br />　　</strong>
				</font>
				<font face="Verdana">How can I find authors with the same last name?<br />You can use the table authors in datatabase pubs. I want to get the result as below:<br />Output:<br />au_lname                                 number_dups <br />---------------------------------------- ----------- <br />Ringer                                   2<br />(1 row(s) affected) </font>
		</p>
		<p>
				<font face="Verdana">　　<strong>Answer 3<br /></strong>　　select au_lname,number_dups=count(1) from authors group by au_lname</font>
		</p>
		<p>
				<font face="Verdana">　</font>
				<font face="Verdana">　<strong>Question4：Can you create a cross-tab report in my <a href="http://dev.21tx.com/database/mssql/" target="_blank"><font color="#3366cc">SQL Server</font></a>!<br /></strong>　　How can I get the report about sale quality for each store and each quarter and the total sale quality for each quarter at year 1993?</font>
		</p>
		<p>
				<font face="Verdana">　　You can use the table sales and stores in datatabase pubs. <br />Table Sales record all sale detail item for each store. Column store_id is the id of each store, ord_date is the order date of each sale item, and column qty is the sale qulity. Table stores record all store information.<br />I want to get the result look like as below:<br />Output:<br /></font>
		</p>
		<p>
		</p>
		<table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
				<tbody>
						<tr>
								<td style="WORD-WRAP: break-word" bgcolor="#f3f3f3">
										<font face="Verdana">stor_name                                Total       Qtr1        Qtr2        Qtr3        Qtr4        <br />---------------------------------------- ----------- ----------- ----------- ----------- ----------- <br />Barnum's                                 50          0           50          0           0<br />Bookbeat                                 55          25          30          0           0<br />Doc-U-Mat: Quality Laundry and Books     85          0           85          0           0<br />Fricative Bookshop                       60          35          0           0           25<br />Total                                    250         60          165         0           25</font>
								</td>
						</tr>
				</tbody>
		</table>
		<br />Answer 4：用动态SQL实现<p></p><p><font face="Verdana"><strong>　　Question5: The Fastest Way to Recompile All Stored Procedures</strong><br />　　I have a problem with a database running in <a href="http://dev.21tx.com/database/mssql/" target="_blank"><font color="#3366cc">SQL Server</font></a> 6.5 (Service Pack 4). We moved the database (object transfer) from one machine to another last night, and an error (specific to a stored procedure) is cropping up. However, I can't tell which procedure is causing it. Permissions are granted in all of our stored procedures; is there a way from the isql utility to force all stored procedures to recompile?</font></p><p><font face="Verdana">　　Tips: sp_recompile can recomplie a store procedure each time</font></p><p><font face="Verdana">　　<strong>Answer 5：</strong>在执行存储过程时,使用 with recompile 选项强制编译新的计划；使用sp_recompile系统存储过程强制在下次运行时进行重新编译</font></p><p><font face="Verdana"><strong>　　Question6: How can I add row numbers to my result set?<br /></strong>In database pubs, have a table titles , now I want the result shown as below,each row have a row number, how can you do that?<br />Result:<br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#f3f3f3">line-no     title_id <br />----------- -------- <br />1           BU1032<br />2           BU1111<br />3           BU2075<br />4           BU7832<br />5           MC2222<br />6           MC3021<br />7           MC3026<br />8           PC1035<br />9           PC8888<br />10          PC9999<br />11          PS1372<br />12          PS2091<br />13          PS2106<br />14          PS3333<br />15          PS7777<br />16          TC3218<br />17          TC4203<br />18          TC7777<br /></td></tr></tbody></table><strong>　　Answer 6：</strong><br />　　--SQL 2005的写法<br />　　select row_number() as line_no ,title_id from titles<br />　　--SQL 2000的写法<br />　　select line_no identity(int,1,1),title_id into #t from titles<br />　　select * from #t<br />　　drop table #t<br /><br />Question 7: Can you tell me what the difference of two SQL statements at performance of execution?<br />　　Statement 1:<br />　　if NOT EXISTS ( select * from publishers where state = 'NY') <br />　　begin</font></p><p></p><p><font face="Verdana">　　SELECT 'Sales force needs to penetrate New York market'</font><font face="Verdana">end</font></p><p><font face="Verdana">　　else<br />　　begin<br />　　SELECT 'We have publishers in New York'<br />　　end<br />　　Statement 2:<br />　　if EXISTS ( select * from publishers where state = 'NY') <br />　　begin<br />　　SELECT 'We have publishers in New York'<br />　　end<br />　　else<br />　　begin<br />　　SELECT 'Sales force needs to penetrate New York market'<br />　　end<br /><strong>　　Answer 7：</strong>不同点:执行时的事务数,处理时间,从客户端到<a href="http://www.21tx.com/server/" target="_blank"><font color="#3366cc">服务器</font></a>端传送的数据量大小</font></p><p><font face="Verdana"><strong>　　Question8: How can I list all California authors regardless of whether they have written a book?<br /></strong></font><font face="Verdana">　　In database pubs, have a table authors and titleauthor , table authors has a column state, and titleauhtor have books each author written. <br /></font><font face="Verdana">CA behalf of california in table authors.<br /><strong>　　Answer 8：</strong><br />　　select * from  authors where state='CA'</font></p><p><font face="Verdana"><strong>　　Question9: How can I get a list of the stores that have bought both 'bussiness' and 'mod_cook' type books?<br /></strong></font><font face="Verdana">　　In database pubs, use three table stores,sales and titles to implement this requestment.<br />Now I want to get the result as below:<br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#f3f3f3"><p><font face="Verdana">stor_id stor_name                                <br />------- ---------------------------------------- <br />...<br />7896    Fricative Bookshop<br />...<br />...<br />...<br />Answer 9：<br />select distinct a.stor_id, a.stor_name from stores a,sales b,titles c <br />where a.stor_id=b.stor_id and b.title_id=c.title_id and c.type='business' and <br />exists(select 1 from sales k,titles g where stor_id=b.stor_id <br />and k.title_id=g.title_id and g.type='mod_cook')    </font></p></td></tr></tbody></table><br /><br />Question10: How can I list non-contignous data?<br /></font><font face="Verdana">　　In database pubs, I create a table test using statement as below, and I insert several row as below<br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#f3f3f3"><p><font face="Verdana">create table test<br />( id int primary key )<br />go</font></p><p><font face="Verdana">insert into test values (1 )<br />insert into test values (2 )<br />insert into test values (3 )<br />insert into test values (4 )<br />insert into test values (5 )<br />insert into test values (6 )<br />insert into test values (8 )<br />insert into test values (9 )<br />insert into test values (11)<br />insert into test values (12)<br />insert into test values (13)<br />insert into test values (14)<br />insert into test values (18)<br />insert into test values (19)<br />go</font></p><p><font face="Verdana">Now I want to list the result of the non-contignous row as below,how can I do it?<br />Missing after Missing before <br />------------- -------------- <br />6             8<br />9             11<br />...<br /></font></p></td></tr></tbody></table></font></p><p></p><p><font face="Verdana"><strong>　　Answer 10：<br /></strong>　　select id from test t where not exists(select 1 from test where id=t.id+1) <br />or not exists(select 1 from test where id=t.id-1)</font></p><p><font face="Verdana"><strong>　　Question11: How can I list all book with prices greather than the average price of books of the same type?<br /></strong>　　In database pubs, have a table named titles , its column named price mean the price of the book, and another named type mean the type of books.<br />Now I want to get the result as below:<br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#f3f3f3">type         title                                                                            price                 <br />------------ -------------------------------------------------------------------------------- --------------------- <br />business     The Busy Executive's Database Guide                                              19.9900<br />...<br />...<br />...<br />...<br /></td></tr></tbody></table><strong>　　Answer 11：<br /></strong>　　select a.type,a.title,a.price from titles a,<br />(select type,price=avg(price) from titles group by type)b<br />where a.type=b.type and a.price&gt;b.price</font></p><p><font face="Verdana">      试题点评：通览整个试题，我们不难发现，这份试题是针对<a href="http://dev.21tx.com/database/mssql/" target="_blank"><font color="#3366cc">SQL Server</font></a><a href="http://dev.21tx.com/database/" target="_blank"><font color="#3366cc">数据库</font></a>人员的。而从难度分析上来看，这份试题也属于同类试题中比较难的了。之所以说它难，首先是限定时间的全英文试题；其次，尽管这份试题主要是考核开发能力，但却涉及到了算法的选择和性能的调优；最后，这份试题还夹进了SQL Server数据库的升级<a href="http://dev.21tx.com/database/problem/" target="_blank"><font color="#3366cc">问题</font></a>。因此，综上所述，我们估计这是一家从事程序外包工作的外企招聘后台开发或与后台开发相关的SQL Server高级程序员的试题。<br /></font></p><img src ="http://www.cnitblog.com/piaoye12345/aggbug/10659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-05-17 17:01 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/05/17/10659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求救BI(商業智能）相關資料</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10557.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Mon, 15 May 2006 09:33:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10557.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/10557.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/10557.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/10557.html</trackback:ping><description><![CDATA[目前在看BI方面的資料，但網上資料很少，他的相關概念和具體的操作方案，我就懂一點皮毛，但是常常出錯，也不知道錯在哪裡了，只有重裝來解決問題。這也不是很好的辦法，但是是我目前唯一的辦法。<br /><br />要是哪位了解這方面的資料，能否留下信息，謝謝！！！<img src ="http://www.cnitblog.com/piaoye12345/aggbug/10557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-05-15 17:33 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql之IN 和 BETWEEN 条件运算符</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10555.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Mon, 15 May 2006 09:25:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10555.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/10555.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/10555.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/10555.html</trackback:ping><description><![CDATA[ <br />　下面是IN条件运算符的SQL语句：<br /><br />　　SELECT column1, SUM(column2)<br /><br />　　FROM "list-of-tables"<br /><br />　　WHERE column3 IN (list-of-values); <br /><br />　　下面是BETWEEN条件运算符的SQL语句：<br /><br />　　SELECT column1, SUM(column2)<br /><br />　　FROM "list-of-tables"<br /><br />　　WHERE column3 BETWEEN value1 AND value2; <br /><br />　　实际上，IN条件运算符是一个设置成员测试运算符，也就是说，它用于测试是否一个数值处在IN关键字之后提供的数值之中。举个例子如下：<br /><br />　　SELECT employeeid, lastname, salary<br /><br />　　FROM employee_info<br /><br />　　WHERE lastname IN (\'Hernandez\', \'Jones\', \'Roberts\', \'Ruiz\'); <br /><br />　　这条语句是从employee_info表中选择lastname等于Hernandez、Jones、 Roberts或者 Ruiz名字之一的列employeeid、 lastname和 salary。如果它在其中就将返回行。<br /><br />　　IN条件运算符可以使用混合条件来替代，比如你可以使用等号运算符或者使用OR运算符等等，但是结果是一样的，例如：<br /><br />　　SELECT employeeid, lastname, salary<br /><br />　　FROM employee_info<br /><br />　　WHERE lastname = \'Hernandez\' OR lastname = \'Jones\' OR lastname = \'Roberts\' OR lastname = \'Ruiz\'; <br /><br />　　你可以观察到，利用IN运算符时语句会更加简短并且容易读，特别是在你测试两个或者三个数值以上的时候尤为突出。<br /><br />　　当然你也可以使用NOT IN 来在你的列表中排除行的。<br /><br />　　<br />而BETWEEN条件运算符是用与测试一个数值是否处在BETWEEN关键字两边指定数值的中间，比如：<br /><br />　　SELECT employeeid, age, lastname, salary<br /><br />　　FROM employee_info<br /><br />　　WHERE age BETWEEN 30 AND 40; <br /><br />　　这条SQL语句是从employee_info表中选择age处于30到40岁之间（包括30岁和40岁）的列employeeid、age、 lastname和salary。<br /><br />　　这条语句同样可以不用BETWEEN运算符，而使用混合条件来替代，例如：<br /><br />　　SELECT employeeid, age, lastname, salary<br /><br />　　FROM employee_info<br /><br />　　WHERE age &gt;= 30 AND age &lt;= 40; <br /><br />　　当然，你也可以类似于NOT IN的方法，使用NOT BETWEEN来排除一些数据。<img src ="http://www.cnitblog.com/piaoye12345/aggbug/10555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-05-15 17:25 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/05/15/10555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NHibernate快速指南</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/02/23/6889.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Thu, 23 Feb 2006 07:31:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/02/23/6889.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/6889.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/02/23/6889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/6889.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/6889.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 什么是NHibernatehttp://www.moon-soft.com/doc/50313.htm&nbsp;NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具。NHibernate 从数据库底层来持久化你的.Net 对象到关系型数据库。NHibernate 为你处理...&nbsp;&nbsp;<a href='http://www.cnitblog.com/piaoye12345/archive/2006/02/23/6889.html'>阅读全文</a><img src ="http://www.cnitblog.com/piaoye12345/aggbug/6889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-02-23 15:31 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/02/23/6889.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB.Net调用存储过程并得到返回值 </title><link>http://www.cnitblog.com/piaoye12345/archive/2006/02/17/6677.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Fri, 17 Feb 2006 08:55:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/02/17/6677.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/6677.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/02/17/6677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/6677.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/6677.html</trackback:ping><description><![CDATA[<P>//存储过程代码&nbsp; <BR>CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),&nbsp;&nbsp; <BR>@sInvoiceDate datetime,@sBuyCity varchar(50))AS&nbsp; <BR>Insert Into SMB_InvoiceInfo (MemberID,ClaimMethod,InvoiceNum,InvoiceDate,InvoiceCity)&nbsp;&nbsp;&nbsp; <BR>&nbsp;Values (@sUserID,@sClaimMethod,@sInvoiceNum,@sInvoiceDate,@sBuyCity)&nbsp;&nbsp; <BR>&nbsp;return&nbsp; @@IDENTITY&nbsp;&nbsp; <BR>&nbsp;GO&nbsp;&nbsp; </P>
<P>//调用存储过程代码&nbsp;&nbsp; <BR>2 Dim CN As New SqlConnection()&nbsp;&nbsp; <BR>3 Dim InvoiceID As String&nbsp; <BR>4 Try&nbsp; <BR>5&nbsp;&nbsp;&nbsp;&nbsp; CN.ConnectionString = DBConStr&nbsp;&nbsp; <BR>6&nbsp;&nbsp;&nbsp;&nbsp; CN.Open()&nbsp;&nbsp; <BR>7&nbsp;&nbsp;&nbsp;&nbsp; Dim CMD As SqlCommand&nbsp;&nbsp; <BR>8&nbsp;&nbsp;&nbsp;&nbsp; CMD = New SqlCommand("AddNewInvoiceInfo", CN)&nbsp;&nbsp; <BR>9&nbsp;&nbsp;&nbsp;&nbsp; CMD.CommandType = CommandType.StoredProcedure&nbsp;&nbsp; <BR>10&nbsp;&nbsp; <BR>11&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sUserID", SqlDbType.Int))&nbsp;&nbsp; <BR>12&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sUserID").Value = CInt(UserID.Text)&nbsp;&nbsp; <BR>13&nbsp;&nbsp; <BR>14&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sClaimMethod", SqlDbType.VarChar, 50))&nbsp;&nbsp; <BR>15&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sClaimMethod").Value = TransName.Text&nbsp;&nbsp; <BR>16&nbsp;&nbsp; <BR>17&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sInvoiceNum", SqlDbType.VarChar, 50))&nbsp;&nbsp; <BR>18&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sInvoiceNum").Value = InvoiceNum.Text&nbsp;&nbsp; <BR>19&nbsp;&nbsp; <BR>20&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sInvoiceDate", SqlDbType.DateTime))&nbsp;&nbsp; <BR>21&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sInvoiceDate").Value = InvoiceDate.SelectedDate.Date&nbsp; <BR>22&nbsp;&nbsp; <BR>23&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sBuyCity", SqlDbType.VarChar, 50))&nbsp;&nbsp; <BR>24&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sBuyCity").Value = BuyCity.Text&nbsp;&nbsp; <BR>25&nbsp;&nbsp; <BR>26&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters.Add(New SqlParameter("@sInvoiceID", SqlDbType.Int))&nbsp;&nbsp; <BR>27&nbsp;&nbsp;&nbsp;&nbsp; CMD.Parameters("@sInvoiceID").Direction = ParameterDirection.ReturnValue&nbsp;&nbsp; <BR>28&nbsp;&nbsp; <BR>29&nbsp;&nbsp;&nbsp;&nbsp; CMD.ExecuteNonQuery()&nbsp;&nbsp; <BR>30&nbsp;&nbsp;&nbsp;&nbsp; InvoiceID = CMD.Parameters("@sInvoiceID").Value.ToString()&nbsp;&nbsp; <BR>31&nbsp;&nbsp;&nbsp;&nbsp; CMD.Dispose()&nbsp;&nbsp; <BR>32 Catch ex As Exception&nbsp;&nbsp; <BR>33&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(ex.ToString())&nbsp;&nbsp; <BR>34 Finally&nbsp; <BR>35&nbsp;&nbsp;&nbsp;&nbsp; CN.Close()&nbsp;&nbsp; <BR>36 End Try&nbsp; <BR>37&nbsp;&nbsp; <BR></P><img src ="http://www.cnitblog.com/piaoye12345/aggbug/6677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-02-17 16:55 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/02/17/6677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql周报，月报查询</title><link>http://www.cnitblog.com/piaoye12345/archive/2006/01/19/6251.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Thu, 19 Jan 2006 02:17:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2006/01/19/6251.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/6251.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2006/01/19/6251.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/6251.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/6251.html</trackback:ping><description><![CDATA[WHERE (DATEDIFF(ww, zt1, @zt1) = 0)这个是周报查询，就是你指定日期所在的一周的所有记录。其中在sql 里面是ww，在access里面就是w. zt1是一个日期型的字段，@zt1为指定的详细日期。<BR><BR>WHERE (DATEDIFF(mm, zt1, @zt1) = 0)这个是月报查询，就是你指定日期所在的一月的所有记录。其中在sql 里面是mm，在access里面就是m. zt1是一个日期型的字段，@zt1为指定的详细日期。<img src ="http://www.cnitblog.com/piaoye12345/aggbug/6251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2006-01-19 10:17 <a href="http://www.cnitblog.com/piaoye12345/archive/2006/01/19/6251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Reporting Service + SP1 for SQL server 2000预览研究</title><link>http://www.cnitblog.com/piaoye12345/archive/2005/12/22/5692.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Thu, 22 Dec 2005 08:19:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2005/12/22/5692.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/5692.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2005/12/22/5692.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/5692.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/5692.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 环境: WinXP, SQL Server 2000 + SP3A, .Net 1.1附件: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (下载附件)Project: Reporting Service 报表设计的Project&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Setup: 报表程...&nbsp;&nbsp;<a href='http://www.cnitblog.com/piaoye12345/archive/2005/12/22/5692.html'>阅读全文</a><img src ="http://www.cnitblog.com/piaoye12345/aggbug/5692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2005-12-22 16:19 <a href="http://www.cnitblog.com/piaoye12345/archive/2005/12/22/5692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>N个dataset的合并</title><link>http://www.cnitblog.com/piaoye12345/archive/2005/11/14/4447.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Mon, 14 Nov 2005 05:45:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2005/11/14/4447.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/4447.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2005/11/14/4447.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/4447.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/4447.html</trackback:ping><description><![CDATA[<P>&nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '得到姓名，工号<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim wr As WebReference.EipUserServices = New WebReference.EipUserServices<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim str_result As String = wr.GetUserTable&nbsp;&nbsp; '接收返回的XML文本<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '将XML文本导入已实例化的Dataset<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim myds As DataSet = New DataSet<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim stringreadr As System.IO.StringReader = New System.IO.StringReader(str_result)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim xmltextrder As System.Xml.XmlTextReader = New System.Xml.XmlTextReader(stringreadr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myds.ReadXml(xmltextrder)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim tt9 As String = "%" + Me.TextBox1.Text.Trim + "%"</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '将工号读出来<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql = "SELECT a.TableSort, b.BDName, a.UserCode, a.State "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql &amp;= " FROM Not_Email a INNER JOIN BasicData b ON a.TableSort = b.BDCode"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql &amp;= " WHERE (b.DataSort = 'A') AND ((b.BDName LIKE @BDName) OR (a.UserCode LIKE @UserCode)) ORDER BY a.TableSort"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mycomm = New SqlCommand(mysql, myconn1)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mycomm.Parameters.Add("@UserCode", tt9.Trim)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mycomm.Parameters.Add("@BDName", tt9.Trim)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myda = New SqlDataAdapter(mycomm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds.Tables.Clear()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myconn1.Open()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myda.Fill(ds, "T1")</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim t3 As DataTable<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim tr As DataRow<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim i, j, k As Int16</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t3 = New DataTable("t3")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To 5<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t3.Columns.Add(New DataColumn("C" + i.ToString))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '将记录T1写到对应的T3列中<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To ds.Tables("T1").Rows.Count - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr = t3.NewRow<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr(0) = ds.Tables("T1").Rows(i).Item(0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr(1) = ds.Tables("T1").Rows(i).Item(1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr(2) = ds.Tables("T1").Rows(i).Item(2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr(3) = ds.Tables("T1").Rows(i).Item(3)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t3.Rows.Add(tr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '扫描web 得到的用户表，将使用记录写入T3对应的行中<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim gh As String<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim rowno As Int16<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To myds.Tables(0).Rows.Count - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gh = myds.Tables(0).Rows(i).Item(2) '工号</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '在T3中查找名为mycode的会议室所在的行号，然后将从T2复制到T3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For j = 0 To t3.Rows.Count - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If t3.Rows(j).Item(2) = gh Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If CStr(myds.Tables(0).Rows(i).Item(0)).Trim = "" Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t3.Rows(j).Item(4) = myds.Tables(0).Rows(i).Item(0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ii As Integer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp; Dim i As Integer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ii = t3.Rows.Count<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ii = ii Mod 20<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ii &lt; 10 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To 10 - ii<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t3.Rows.Add(t3.NewRow)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '将T3绑定到datagrid<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Me.DataGrid1.DataSource = t3.DefaultView<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Me.DataGrid1.DataBind()</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myconn1.Close()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch ex As Exception<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Me.Label1.Text = "出错了：&lt;br&gt;在读取数据库时出现异常，数据读取失败！&lt;br&gt;原因事:" + ex.Message<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try</P><img src ="http://www.cnitblog.com/piaoye12345/aggbug/4447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2005-11-14 13:45 <a href="http://www.cnitblog.com/piaoye12345/archive/2005/11/14/4447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>请问如何把一个DATASET中的2个表做一个自然连接生成一个新表</title><link>http://www.cnitblog.com/piaoye12345/archive/2005/10/28/3639.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Fri, 28 Oct 2005 06:31:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2005/10/28/3639.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/3639.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2005/10/28/3639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/3639.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/3639.html</trackback:ping><description><![CDATA[<BR>首先，建立一个Relations并将它添加到DataSet中：<BR>Dim dcCustomerCustID As DataColumn<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim dcOrdersCustID As DataColumn<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dcCustomerCustID = myDataSet.Tables("custTest").Columns("custID")<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dcOrdersCustID = myDataSet.Tables("orderTest").Columns("custID")<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim relCustomerOrders As DataRelation<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; relCustomerOrders = New DataRelation("CustomerOrders", dcCustomerCustID, dcOrdersCustID)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myDataSet.Relations.Add(relCustomerOrders)<BR><BR>然后，建立新的DataColumn，使用DataColumn的Expression属性得到父表(Parent Talbe)中的值，再将这些DataColumn添加到子表（Child Table）中：<BR>Dim oCustName As DataColumn<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oCustName = New DataColumn()<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oCustName.DataType = System.Type.GetType("System.String")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oCustName.ColumnName = "custName"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oCustName.Expression = "Parent.custName"<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myDataSet.Tables("orderTest").Columns.Add(oCustName)<BR><BR><BR>接着，设定DataView，将DataGrid与子表绑定：<BR>Dim dv As DataView<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dv = New DataView(myDataSet.Tables("orderTest"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataGrid1.DataSource = dv<BR><BR>这样，就可以使用一个DataGrid显示两个Table中的数据了。<BR>有关DataColumn的Expression属性，请参考MSDN中相应的内容：<BR>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataDataColumnClassExpressionTopic.asp<BR><img src ="http://www.cnitblog.com/piaoye12345/aggbug/3639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2005-10-28 14:31 <a href="http://www.cnitblog.com/piaoye12345/archive/2005/10/28/3639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Unicode 字符串数据类型 和 非Unicode 字符串数据类型</title><link>http://www.cnitblog.com/piaoye12345/archive/2005/10/18/3372.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Tue, 18 Oct 2005 05:26:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2005/10/18/3372.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/3372.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2005/10/18/3372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/3372.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/3372.html</trackback:ping><description><![CDATA[<OL>
<LI>&nbsp;Unicode 字符串数据类型 和 非Unicode 字符串数据类型有何不同? 使用的时候有何地方需要注意的呢? </LI>
<LI>Unicode操作时，它每个字符占2个字节</LI>
<LI>使用length属性时，无论英文还是汉字，都以“双字节”论处，假如String S="大家好OK"，S的长度为5，如果在非Unicode操作时，它为8 </LI>
<LI>需要注意的是，ACCESS数据库使用ASCII字符串，平时我们喜欢把“姓名”长度设置成8。<BR>这样我们在编程时习惯检查<BR>if(S&gt;8)<BR>{<BR>&nbsp;&nbsp;&nbsp; msgbox("长度越界");<BR>else<BR>{<BR>&nbsp;&nbsp;&nbsp; //写入数据库<BR>}<BR>应该改成：<BR>if(S&gt;4)<BR>{<BR>&nbsp;&nbsp;&nbsp; msgbox("长度越界");<BR>else<BR>{<BR>&nbsp;&nbsp;&nbsp; //写入数据库<BR>} </LI>
<LI>SQL Server 2000存储时可以直接选择U字母开头的类型存储，这样不容易出现字节误差错误，ACCESS则不行，需要自行处理</LI>
<LI>检测del是否按下：&nbsp;Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If e.KeyCode = Keys.Down Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox("OK")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; End Sub<BR>以上代码检测delete是否按下 <BR>&nbsp;</LI></OL><img src ="http://www.cnitblog.com/piaoye12345/aggbug/3372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2005-10-18 13:26 <a href="http://www.cnitblog.com/piaoye12345/archive/2005/10/18/3372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL中CONVERT转化函数的用法</title><link>http://www.cnitblog.com/piaoye12345/archive/2005/10/17/3354.html</link><dc:creator>萌芽的叶子</dc:creator><author>萌芽的叶子</author><pubDate>Mon, 17 Oct 2005 06:22:00 GMT</pubDate><guid>http://www.cnitblog.com/piaoye12345/archive/2005/10/17/3354.html</guid><wfw:comment>http://www.cnitblog.com/piaoye12345/comments/3354.html</wfw:comment><comments>http://www.cnitblog.com/piaoye12345/archive/2005/10/17/3354.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/piaoye12345/comments/commentRss/3354.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/piaoye12345/services/trackbacks/3354.html</trackback:ping><description><![CDATA[<STRONG><BR><BR></STRONG>CONVERT的使用方法: 
<P></P>
<P>////////////////////////////////////////////////////////////////////////////////////////</P>
<P>格式:<BR>CONVERT(data_type,expression[,style])</P>
<P>说明:<BR>此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)<BR>相互转换的时候才用到.</P>
<P>例子:<BR>SELECT CONVERT(varchar(30),getdate(),101) now<BR>结果为<BR>now<BR>---------------------------------------<BR>09/15/2001</P>
<P>/////////////////////////////////////////////////////////////////////////////////////</P>
<P>style数字在转换时间时的含义如下</P>
<P>-------------------------------------------------------------------------------------------------<BR>Style(2位表示年份) | Style(4位表示年份) | 输入输出格式 <BR>-------------------------------------------------------------------------------------------------<BR>- | 0 or 100 | mon dd yyyy hh:miAM(或PM) <BR>-------------------------------------------------------------------------------------------------<BR>1 | 101 | mm/dd/yy <BR>-------------------------------------------------------------------------------------------------<BR>2 | 102 | yy-mm-dd <BR>-------------------------------------------------------------------------------------------------<BR>3 | 103 | dd/mm/yy <BR>-------------------------------------------------------------------------------------------------<BR>4 | 104 | dd-mm-yy <BR>-------------------------------------------------------------------------------------------------<BR>5 | 105 | dd-mm-yy <BR>-------------------------------------------------------------------------------------------------<BR>6 | 106 | dd mon yy <BR>-------------------------------------------------------------------------------------------------<BR>7 | 107 | mon dd,yy <BR>-------------------------------------------------------------------------------------------------<BR>8 | 108 | hh:mm:ss <BR>-------------------------------------------------------------------------------------------------<BR>- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)<BR>-------------------------------------------------------------------------------------------------<BR>10 | 110 | mm-dd-yy <BR>-------------------------------------------------------------------------------------------------<BR>11 | 111 | yy/mm/dd <BR>-------------------------------------------------------------------------------------------------<BR>12 | 112 | yymmdd <BR>-------------------------------------------------------------------------------------------------<BR>- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制) <BR>-------------------------------------------------------------------------------------------------<BR>14 | 114 | hh:mi:ss:mmm(24小时制) <BR>-------------------------------------------------------------------------------------------------<BR>- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制) <BR>-------------------------------------------------------------------------------------------------<BR>- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制) <BR>-------------------------------------------------------------------------------------------------</P>
<P><BR></P><img src ="http://www.cnitblog.com/piaoye12345/aggbug/3354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/piaoye12345/" target="_blank">萌芽的叶子</a> 2005-10-17 14:22 <a href="http://www.cnitblog.com/piaoye12345/archive/2005/10/17/3354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>