﻿<?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>博客园-木刀博客</title><link>http://www.cnblogs.com/Moosdau/</link><description>长矛在手,刀剑生辉,看我弟兄,迎着烽烟大步来</description><language>zh-cn</language><lastBuildDate>Sun, 06 Jul 2008 21:28:06 GMT</lastBuildDate><pubDate>Sun, 06 Jul 2008 21:28:06 GMT</pubDate><ttl>60</ttl><item><title>SQL SERVER 2005的一个怪问题: 在查询结果面板中编辑失败.</title><link>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1043248.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Thu, 17 Jan 2008 09:18:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1043248.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1043248.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1043248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1043248.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1043248.html</trackback:ping><description><![CDATA[最近公司的数据库服务器从sql server 2000 升级到了2005, 随之, 就频发奇怪的事: <br />
执行插入或是删除操作时, 最终确认后弹出错误对话框:<br />
the data in row 1 was not committed.<br />
error source: microsoft.sqlserver.management.datatools<br />
error message: the updated row has changed or been deleted since data was last retrieved<br />
<br />
首先可以肯定的是, 肯定不是过期了, 我只有两个字段的一个表, 在5秒内录入完数据, 确认, 还是插入失败, 而且也不是SQL SERVER 本身出了严重的故障, 因为在我自己的机器上的服务器就从没发生过这种问题. 在网上找了找, 只看到这一篇:<br />
http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2660498&amp;SiteID=17&amp;pageid=0#16748041<br />
其它的地方没看到比较实质性的说法, 这篇文章中, 一个人,还不是微软的 , 提到, 在"服务器属性/ 连接/ " 里, 有一个no count 属性, 默认是勾选的, 把它勾掉, 就可以了, 于是找我们的DBA , 把这个选项勾掉, 一试, 果然好了, (要断开重连) 不知道是什么原因, 看起来好像是微软的一个bug. <br />
<br />
用sql server 2005 几个月以来, 虽然我尽了最大的努力去适应它, 到现在为止却仍然是觉得要喜欢它真是一件困难的事:<br />
各种常规操作的响应速度远远慢于sql server 2000;<br />
右侧的listview 面板(object explorer detail) 不能自动激活, ( 如果当前激活了其它的标签页, 在左侧的object explorer 上点击一下, 没反应, 还要手动找到右侧面板, 才可以, 而且没有相应的选项. ) 让我郁闷了很久;<br />
存储过程不能双击打开;<br />
...<br />
<br />
试用了sql server 2008 CTP, 基本上是照着2005 的模子做的, 唯一感觉惊喜的是写sql 语句也可以用智能感知了, 这实在是一个好东西, 可惜很不稳定, 一会儿有一会儿没有, 有的语句有, 有的语句没有. (select 就有, delete 就没有)&nbsp; 不过, CTP 版么, 难免的, 可以理解. <br />
<br />
<img src ="http://www.cnblogs.com/Moosdau/aggbug/1043248.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37549/" target="_blank">[新闻]阿里巴巴确立未来十年战略规划 修改自身定位</a>]]></description></item><item><title>LINQ 中调用存储过程自动绑定列名</title><link>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042260.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Thu, 17 Jan 2008 00:49:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042260.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1042260.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1042260.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1042260.html</trackback:ping><description><![CDATA[以下一个存储过程:<br />
<p><font face="Verdana">CREATE&nbsp;PROCEDURE dbo.sp1<br />
AS</font><font face="Verdana"><br />
&nbsp;SELECT 'abc' <br />
<br />
在C#中:<br />
var o=db.sp1();<br />
GridView1.DataSource=o;<br />
GridView1.DataBind();<br />
会发现, 没有取到任何数据. <br />
<br />
原因在于, SELECT 语句没有指定列名, 而LINQ 的查询必须带有列名, 但是如果这时仅仅把存储过程加个列名, 仍然取不到数据, 因为在dbDataContext 中, sp1 函数的定义已经跟原来的SELECT 绑定了, 必须把这个sp1 函数删除, 重新从数据库拖一个过来, 才来取到数据. <br />
<br />
从这一点来说, 感觉还是有点不方便, 如果以后的技术能做到, 把表, 存储过程这些东西都自动更新, 都好了. 呵呵. </font></p>
<img src ="http://www.cnblogs.com/Moosdau/aggbug/1042260.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37549/" target="_blank">[新闻]阿里巴巴确立未来十年战略规划 修改自身定位</a>]]></description></item><item><title>多层母版页嵌套中, 内层母版页的事件默认不触发</title><link>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042252.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Thu, 17 Jan 2008 00:44:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042252.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1042252.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2008/01/17/1042252.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1042252.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1042252.html</trackback:ping><description><![CDATA[前几天用到多层母版页, 可是奇怪地发现, 内容页面, 以及最外层的母版页事件可以正常触发, 但是内层的母版页就是没有事件发生, 追了很久也没发现为什么, 后来再三检查, 终于发现在页面的html 源的第一行, &lt;% Master %&gt; 指令的"AutoEventWireUp" 属性被置成了false, 由于默认情况下, VS 都会都这个值置成true,所以很少会想到它, 不知道为什么VS 要默认把内层母版页置成不触发事件. 
<img src ="http://www.cnblogs.com/Moosdau/aggbug/1042252.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37549/" target="_blank">[新闻]阿里巴巴确立未来十年战略规划 修改自身定位</a>]]></description></item><item><title>开发笔记: 一个大报表的前后台处理(二) </title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015822.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Wed, 26 Dec 2007 09:17:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015822.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1015822.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1015822.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1015822.html</trackback:ping><description><![CDATA[摘要: 后台的key point 就是换页方法. 由于数据很多, 全部取出是不现实的, 我采用的做法是一次取一页, 虽然用户如果连续翻页的话可能会有问题, 不过鉴于这种做法的简单性, 以及用户实际上很少会连续翻页, 都是用查询功能获取数据, 所以就决定采用这种方案. 但是必须让用户知道有多少行, 多少页,就有以下一个初始函数:1protectedvoidInitPage()2{3PageCache=nul&nbsp;&nbsp;<a href='http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015822.html'>阅读全文</a><img src ="http://www.cnblogs.com/Moosdau/aggbug/1015822.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37548/" target="_blank">[新闻]微软高管：Wii用户最终会成为Xbox 360用户</a>]]></description></item><item><title>开发笔记: 一个大报表的前后台处理(一)</title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015719.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Wed, 26 Dec 2007 08:25:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015719.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1015719.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/26/1015719.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1015719.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1015719.html</trackback:ping><description><![CDATA[<p>在一个内容比较多的报表页面, 由于要处理查询,换页,编辑等功能,怎样合理布局也不是那么容易就决定的, 这里展示了一种可能的方案. 先看设计视图:<br />
<img height="480" alt="" src="http://www.cnblogs.com/images/cnblogs_com/moosdau/khd.JPG" width="820" border="0" /><br />
<br />
第一行是标题, 第二行是一个显示错误消息的标签, 这是我很喜欢的一种风格, 其一, 相比写脚本来说更可靠一点, 其二, 更重要的是, 我很不喜欢页面弹出对话框让我点确定, 所以我也不想强奸自己的用户, 按说, 这种标签应该放在页面的下方, 不过考虑到用户可能不容易注意到下面的东西, 而这些错误信息往往非常重要, 所以我最终决定把它放在页面的第二行.</p>
<p>第三行是按钮 &amp; 功能区域, 这也是经过很久的尝试决定下来的, 把所有的按钮集中摆放, 当然, 这个页面有点特殊, 它下面还有指向其它页面的链接, 一般的页面下面就没有别的功能性控件了. <br />
第四行是搜索区域, 用多个文本框, 而不是dropdownlist, 更方便于复杂的查询, 而提示标签和文本框是横向排列还是纵向排列, 也是容易发生分歧的地方, 如图所示, 我认为纵向排列看起来更整齐, 所以我采用了纵向排列. <br />
最下面一行还有一个小标签, 是显示搜索条件的. <br />
运行时视图如下,这是把IE 全屏后的截图:<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/moosdau/khr.JPG" border="0" /><br />
<br />
<br />
<br />
这里面用到了一点小技巧, 在我的页面上, 有这样一段代码:<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_55_311_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_55_311_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_55_311_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_55_311_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_55_311_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_55_311_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_55_311_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_55_311_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="javascript"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_55_311_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_55_311_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;window.onload()<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000; background-color: #f5f5f5"><img id="Codehighlighter1_87_308_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_87_308_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_87_308_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_87_308_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_87_308_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_87_308_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_87_308_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_87_308_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_87_308_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_87_308_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(dgc</span><span style="color: #000000; background-color: #f5f5f5">!=</span><span style="color: #0000ff; background-color: #f5f5f5">null</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000; background-color: #f5f5f5"><img id="Codehighlighter1_113_302_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_113_302_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_113_302_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_113_302_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_113_302_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_113_302_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_113_302_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_113_302_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_113_302_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_113_302_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgc.style.width</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">document.body.clientWidth</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">dgc.offsetLeft</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">20</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgc.style.height&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.body.clientHeight</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">dgc.offsetTop</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">40</span><span style="color: #000000; background-color: #f5f5f5">;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdLayout.width</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">window.screen.width</span><span style="color: #000000; background-color: #f5f5f5">-</span><span style="color: #000000; background-color: #f5f5f5">700</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5">&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">11</span><span style="color: #000000; background-color: #f5f5f5"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;其中dgc 的定义, 及dataGrid 的headerStyle 如下:</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="ScrollRegion"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="dgc"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="POSITION:&nbsp;relative;&nbsp;TOP:&nbsp;0px"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HeaderStyle&nbsp;</span><span style="color: #ff0000">Font-Size</span><span style="color: #0000ff">="11pt"</span><span style="color: #ff0000">&nbsp;Font-Bold</span><span style="color: #0000ff">="True"</span><span style="color: #ff0000">&nbsp;Wrap</span><span style="color: #0000ff">="False"</span><span style="color: #ff0000">&nbsp;ForeColor</span><span style="color: #0000ff">="Black"</span><span style="color: #ff0000">&nbsp;CssClass</span><span style="color: #0000ff">="Freez"</span><span style="color: #ff0000"> </span><span style="color: #ff0000"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />BackColor</span><span style="color: #0000ff">="#8CCFF7"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">HeaderStyle</span><span style="color: #0000ff">&gt;</span></div>
<br />
这里面用到两个css 属性, ScrollRegion 和Freez , 这两个属性的定义如下:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #800000">.ScrollRegion<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #800000"><img id="Codehighlighter1_14_37_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_14_37_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_14_37_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_14_37_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_14_37_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_14_37_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_14_37_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_14_37_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_14_37_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">{<img src="http://www.cnblogs.com/Images/dot.gif"  alt="" />}</span><span id="Codehighlighter1_14_37_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;overflow</span><span style="color: #000000">:</span><span style="color: #0000ff">&nbsp;scroll</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #800000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #800000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #800000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />.Freez<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #800000"><img id="Codehighlighter1_50_163_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_50_163_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_50_163_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_50_163_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_50_163_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_50_163_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_50_163_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_50_163_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_50_163_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">{<img src="http://www.cnblogs.com/Images/dot.gif"  alt="" />}</span><span id="Codehighlighter1_50_163_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;table-layout</span><span style="color: #000000">:</span><span style="color: #0000ff">fixed</span><span style="color: #000000">;</span><span style="color: #ff0000"><br />
</span><span style="color: #008080">11</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;position</span><span style="color: #000000">:</span><span style="color: #0000ff">relative</span><span style="color: #000000">;</span><span style="color: #ff0000"><br />
</span><span style="color: #008080">12</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;top</span><span style="color: #000000">:</span><span style="color: #0000ff">expression(this.offsetParent.scrollTop)</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;z-index</span><span style="color: #000000">:</span><span style="color: #0000ff">&nbsp;10</span><span style="color: #000000">;</span><span style="color: #ff0000"><br />
</span><span style="color: #008080">14</span><span style="color: #ff0000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">}</span></span><span style="color: #800000">&nbsp;</span></div>
<br />
window.OnLoad 函数的前两行所实现的效果, 就是把datagrid 限定到如运行效果图所示的适合页面的大小, datagrid自身卷动, 而不会让整个页面卷动, 第三行是调整搜索框的间距, 不过"700" 这个值是别的页面的, 这个页面不需要这一句, 原因: 如果一行只有两个文本框, 设三个td , 前两个td设width 各110, 第三个td 不设置, ie 会如何显示? 它并不会听话地让前两格标准地呈现110px 宽, 而是会向后面的空白地址匀, 导致两个文本框看起来离得很远, 解决办法就是为第三个td 也设一个宽度, "挤" 得前两格不能后移. 由于客户端的分辨率不确定, 所以我用了脚本动态设置, 而没有直接写进页面里. <br />
<br />
经过这个小技巧, 页面整体看起来就舒服多了.<br />
 <img src ="http://www.cnblogs.com/Moosdau/aggbug/1015719.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37548/" target="_blank">[新闻]微软高管：Wii用户最终会成为Xbox 360用户</a>]]></description></item><item><title>在VS2003下把一个DataTable Update 到数据库</title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008959.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Fri, 21 Dec 2007 05:10:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008959.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1008959.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1008959.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1008959.html</trackback:ping><description><![CDATA[假设一个常见的场景先吧----实际也是我当前的场景-----把一个excel 文件导入到数据库. 这实在是一个常见的功能,但是,没想到的是, 我着实费了一把劲. <br />
<br />
实际上,我以前写的有现成的函数来完成这个工作, 但是, 可惜那函数只能在VS2005 下工作, 在2003下面无效,无效的原因是,vs2003 的DataTable.Rows[i].SetAdded() 方法不存在. 也就是说, 你没有办法去更改一行的RowState, 而从excel 读到的dataTable的 行状态"默认" 是unChanged. <br />
<br />
如果不信, 你也可以尝试去google或百度上搜一下试试看, 关于这个功能的贴子真是少得可怜,大约大家都换用vs2005了吧, 我找了半天, 零零碎碎地找到一些信息, 这些信息都指向DataTable.GetChanges(RowState) 函数, 由于都是语焉不详, 所以我高兴地认为, 这个函数能将表的所有行的状态都设置为参数所指定的RowState, 就像我原来的函数用一个for循环为每一行调用SetAdded 的效果一样, 我一边还惭愧, 以前用了那么笨的办法. 然而心底却在奇怪, 微软怎么会起了这么笨的一个函数名. <br />
<br />
一番测试后, 终于弄明白原来不是微软笨,而是我弄错了, GetChanges函数果然是用来Get, 而不是set的, 它返回母表中指定状态的行组成的子表, 也就是说, 刚才的查找白费了. <br />
<br />
再找了一会儿, 借助于Mitch Milam 先生十分专业的一篇文章, 终于找到了正确的solution, 这篇文章的url:<br />
<font face="Courier New">http://blogs.infinite-x.net/2006/09/21/the-saga-of-net-dataadapterupdate-and-multiple-tables/print/</font><br />
说它专业, 是因为这篇文章几乎是以正规科技论文的格式来写的, 虽然我自己写论文的时候很讨厌麻烦的格式, 但是阅读的时候, 却不得不承认, 这种严谨的格式读起来实在是愉快地多. ----废话少说, 问题的关键在于行状态, 从excel 读取后成了unchanged, 而且又无法修改, 问题就在于读取. 原来数据适配器有一个<font face="Courier New">AcceptChangesDuringFill</font> 属性, 这个属性默认为true, 所以调用Fill 方法后, 它就自动地AcceptChange了 , 然后行状态就变成unchanged了, 只要把这个属性置为false, fill 后, 就可以保持行状态为Added, 然后在update 函数里就不需要考虑行状态了. <br />
<br />
以下为不太熟悉这两种操作的朋友列出源代码, 为了阅读方便,去掉了错误检查部分的代码,但在实际应用中, try语句是不可缺少的:<br />
&lt;0&gt;调用代码:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;path</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">upload</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />DataTable&nbsp;dt</span><span style="color: #000000">=</span><span style="color: #000000">ImportFromExcel(path);<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;selectCommand</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">SELECT&nbsp;*&nbsp;FROM&nbsp;T1</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />UpdateToDataBase(selectCommand,dt);</span></div>
<br />
&lt;1&gt; 从excel 读取数据<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">DataTable&nbsp;ImportFromExcel(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;path)<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_39_751_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_39_751_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_39_751_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_39_751_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_39_751_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_39_751_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_39_751_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_39_751_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_39_751_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_39_751_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;path</span><span style="color: #000000">=</span><span style="color: #000000">Server.MapPath(path);<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;upload1.PostFile.SaveAs(path);<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;connString&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;path&nbsp;</span><span style="color: #000000">+</span><span style="color: #800000">"</span><span style="color: #800000">;Extended&nbsp;Properties='Excel&nbsp;8.0;HDR=yes;IMEX=1;'</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;selectCommand&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;SELECT&nbsp;*&nbsp;FROM&nbsp;[Sheet1$]&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;DataTable&nbsp;dt</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataTable();<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.Data.OleDb.OleDbConnection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.OleDb.OleDbConnection(connString);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;conn.Open();<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.Data.OleDb.OleDbCommand&nbsp;cmd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.OleDb.OleDbCommand(selectCommand,&nbsp;conn);<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.Data.OleDb.OleDbDataAdapter&nbsp;adt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.OleDb.OleDbDataAdapter(cmd);<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;adt.AcceptChangesDuringFill</span><span style="color: #000000">=</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;adt.Fill(dt);<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.IO.File.Delete(path);<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;dt;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
这里面的trick 就是第14 行. <br />
<br />
&lt;2&gt;提交DataTable 到数据库<br />
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;UpdateToDataBase(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sql,DataTable&nbsp;dt)<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_47_509_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_47_509_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_47_509_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_47_509_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_47_509_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_47_509_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_47_509_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_47_509_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_47_509_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_47_509_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;connString</span><span style="color: #000000">=</span><span style="color: #000000">GetConnectionString();<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;System.Data.SqlClient.SqlConnection&nbsp;con&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.SqlClient.SqlConnection(connString);<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;System.Data.SqlClient.SqlDataAdapter&nbsp;adt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.SqlClient.SqlDataAdapter(sql,&nbsp;con);<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;System.Data.SqlClient.SqlCommandBuilder&nbsp;builder&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.Data.SqlClient.SqlCommandBuilder(adt);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;adt.InsertCommand</span><span style="color: #000000">=</span><span style="color: #000000">builder.GetInsertCommand();<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;con.Open();<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;adt.Update(dt).ToString();<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;con.Close();<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.cnblogs.com/Moosdau/aggbug/1008959.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37547/" target="_blank">[新闻]遵守YouTube案裁定 谷歌将陷入隐私指控深渊</a>]]></description></item><item><title>VS2008设计视图一个不可原谅的错误</title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008322.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Fri, 21 Dec 2007 01:36:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008322.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/1008322.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/21/1008322.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/1008322.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/1008322.html</trackback:ping><description><![CDATA[<p>如果有10个文本框在页面上, 并且想设置一下它们的字体, 在VS2005里面, 只要按住ctrl , 把它们都选设一下就好了, 但是在vs2008 , 或是expression web中, sorry, 你必须一个一个地设置它们------vs2008的新的设计器不支持多选. <br />
简直是难以相信. 但这就是事实. 在以下的地址可以看到一个微软的工程师的原贴:<br />
<font face="Courier New">http://forums.asp.net/t/1170907.aspx</font><br />
<br />
这里摘录他的一句话:<br />
Unfortunately, new designer does not support multiple selection (same as Expression Web and earlier FrontPage). This is a popular request so we are considering adding the feature in VS10 (i.e. it will not be in VS 2008).<br />
<br />
看来即使开发环境换成vs2008, 还是很必要放一个2005 等在那里, 万一发生了这种需求, 不至于累死. </p>
<img src ="http://www.cnblogs.com/Moosdau/aggbug/1008322.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37547/" target="_blank">[新闻]遵守YouTube案裁定 谷歌将陷入隐私指控深渊</a>]]></description></item><item><title>VS的一个小功能: 在解决方案管理器中跟踪活动项</title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/07/986233.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Fri, 07 Dec 2007 01:37:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/07/986233.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/986233.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/07/986233.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/986233.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/986233.html</trackback:ping><description><![CDATA[<p>这个功能在VS 中默认是禁用的, 一直没用过, 最近偶然发现, 还真是好用的. <br />
<br />
打开方法: 在选项中, 找到"项目和解决方案" 一节, 勾选"在解决方案管理器中跟踪活动项" 即可. <br />
<br />
效果: 当一个代码页被选中的时候, 解决方案中相应的文件就会自动被选中, 即使这个文件处于多层文件夹中, vs也会自动把这些文件夹展开, 选中当前文件. 对于比较大的项目来说, 这个功能实在是不错. </p>
<img src ="http://www.cnblogs.com/Moosdau/aggbug/986233.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37546/" target="_blank">[新闻]iPhone入华在即 中国手机产业生存面临考验</a>]]></description></item><item><title>从vs2003升级到vs2005的一个问题: 只读文本框(readonly textbox)不能在客户端修改值</title><link>http://www.cnblogs.com/Moosdau/archive/2007/12/06/984959.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Thu, 06 Dec 2007 03:22:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/12/06/984959.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/984959.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/12/06/984959.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/984959.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/984959.html</trackback:ping><description><![CDATA[做一个简单的实验先: <br />
在vs2003中, 新建一个网页, 拖上一个textbox, 将它的readonly 设成true, 然后再放一个input: button, 给它写代码: document.getElementById("txt1").value="test"; 再放一个服务器端的button, 不用写代码. <br />
<br />
好了, 开始运行, 点击客户端按钮, 会发现textbox 的值变成了test, 然后再点服务器端按钮使页面回传, 值仍然在, 也就是说, 服务器端的 txt1.Text 属性已经被成功更新了, 事实上, 这时候如果在txt1.OnTextChanged 事件的处理器中下断点, 可以看到事件被触发了. <br />
<br />
但是, 在vs2005中, 做同样的动作, 点击服务器端按钮使页面回传后, textbox 的值就会丢掉, 给txt1.OnTextChanged 的处理器下断点, 发现事件没有被触发. 如果readonly 为false, 则服务器端的值被更新. <br />
<br />
这一功能在vs 2005中的解决办法有:<br />
&lt;1&gt; 不要将textbox 设为readonly , 而是在pageLoad 中, 为其增加一个readonly attribute, 这样在客户端它仍是只读的, 但是在服务器的眼里, 它不是只读的. <br />
&lt;2&gt;用input:text 或其它代替textbox. <br />
&lt;3&gt;在服务器端用Request.Form[txt1.UniqueID] , 可以取到更改后的值. <br />
<br />
any way , 像我们公司一样, 在原来的项目中大量地应用了这一特性, 升级的时候, 大量的无聊工作就不可避免了. <br />
真郁闷. 
<img src ="http://www.cnblogs.com/Moosdau/aggbug/984959.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37545/" target="_blank">[新闻]阿里巴巴集团再向淘宝注资20亿元</a>]]></description></item><item><title>updatePanel 跟母版页不兼容的错误----快被整死了</title><link>http://www.cnblogs.com/Moosdau/archive/2007/11/30/977888.html</link><dc:creator>木刀</dc:creator><author>木刀</author><pubDate>Fri, 30 Nov 2007 02:02:00 GMT</pubDate><guid>http://www.cnblogs.com/Moosdau/archive/2007/11/30/977888.html</guid><wfw:comment>http://www.cnblogs.com/Moosdau/comments/977888.html</wfw:comment><comments>http://www.cnblogs.com/Moosdau/archive/2007/11/30/977888.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/Moosdau/comments/commentRss/977888.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Moosdau/services/trackbacks/977888.html</trackback:ping><description><![CDATA[<p>最近被这个问题快折磨死了. <br />
<br />
在VS2005 中新建一个AjaxEnabledWebSite, 添加一个母版页, 再添加一个内容页, <br />
在内容页中添加updatePanel, 或是其它的ajax 控件, 都会报错, 一是没有智能感知, <br />
二是在包含在其中任何控件都会报错. -----运行的时候是正确的, 切换到设计视图也是好的, <br />
但是就只是在"源" 视图, 会报错, 如下图所示:</p>
<p><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/moosdau/ajaxerr.JPG" border="0" /><br />
<br />
非母版页的页面则是正常的, 虽然不影响运行 , 但是把源视图的代码弄得很乱, 没有一点格式, 我手动<br />
调整以后, 它自己又会乱掉, 而且在编译的时候, 这些全部都被认为是编译错误, 而不是警告, 虽然这些<br />
错误不影响运行, 但是错误列表里几十几百个错误影响到了其它错误的查找, 而且极度影响心情, 哪个老大<br />
知道怎么处理?&nbsp; <br />
<br />
谢谢~~<br />
<br />
btw: 我装过ajaxtoolKit 那个工具包, 不知道是不是受它影响. </p>
<img src ="http://www.cnblogs.com/Moosdau/aggbug/977888.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/37544/" target="_blank">[新闻]56被关一月 危机的是整个视频业</a>]]></description></item></channel></rss>