<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xinggang (邢港)</title>
    <link>https://xxb.lttc.cn/xinggang</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>ERP 导入 Excel 报错：System.Data.OleDb.OleDbException: 未指定的错误</title>
      <description>&lt;h2 id="问题描述"&gt;问题描述&lt;/h2&gt;
&lt;p&gt;ERP 导入 Excel 报错：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System.Data.OleDb.OleDbException: 未指定的错误
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="/uploads/photo/xinggang/1e0c6105-1b03-4660-94bb-6482410ea8e2.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="解决方案"&gt;解决方案&lt;/h2&gt;
&lt;p&gt;安装：&lt;a href="https://pan.lttc.cn/s/xxb?path=%2F01-%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%2FOffice" rel="nofollow" target="_blank" title=""&gt;AccessDatabaseEngine2007.exe&lt;/a&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 28 Apr 2021 14:52:25 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/229</link>
      <guid>https://xxb.lttc.cn/topics/229</guid>
    </item>
    <item>
      <title>集团 ERP 桌面工具 - 短信平台显示不全的解决方案</title>
      <description>&lt;p&gt;安装完集团 ERP 后默认桌面工具中的&lt;code&gt;短信平台&lt;/code&gt;会因为尺寸原因显示不全，如图：&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/xinggang/833087c5-89b1-4a92-a096-61835cab9147.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="解决方案"&gt;解决方案&lt;/h3&gt;
&lt;p&gt;可以通过&lt;code&gt;桌面工具设置&lt;/code&gt;窗口的&lt;code&gt;高度&lt;/code&gt;和&lt;code&gt;栏数&lt;/code&gt;来调整显示尺寸。&lt;/p&gt;

&lt;p&gt;1、点击 ERP 主窗口右下角&lt;code&gt;桌面工具设置&lt;/code&gt;图标，打开&lt;code&gt;桌面工具设置&lt;/code&gt;小窗口。&lt;/p&gt;

&lt;p&gt;2、将高度设置为&lt;code&gt;600&lt;/code&gt;，将栏数设置为&lt;code&gt;2&lt;/code&gt;，保存后关闭设置窗口。&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/xinggang/5242e75b-3c5e-477e-befa-4fba4d80097d.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;3、最终调整后效果如图。&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/xinggang/1bebcdde-364d-4774-a1da-378b8a314ac7.png!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Mon, 12 Apr 2021 16:47:40 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/226</link>
      <guid>https://xxb.lttc.cn/topics/226</guid>
    </item>
    <item>
      <title>集团 ERP 报错：应用层错误！反序列化时发生错误，原因是：Error GZIP header,first magic byte doesn't match</title>
      <description>&lt;h2 id="问题描述"&gt;问题描述&lt;/h2&gt;
&lt;p&gt;应用层错误！&lt;/p&gt;

&lt;p&gt;反序列化时发生错误，错误原因是：&lt;code&gt;Error GZIP header,first magic byte doesn't match&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="问题截图"&gt;问题截图&lt;/h2&gt;
&lt;p&gt;&lt;img src="/uploads/photo/xinggang/d7c410dd-df43-4289-a451-4c384f3793d4.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="解决方案"&gt;解决方案&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;待完善...&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <author>xinggang</author>
      <pubDate>Thu, 01 Apr 2021 12:04:54 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/220</link>
      <guid>https://xxb.lttc.cn/topics/220</guid>
    </item>
    <item>
      <title>C# 动态改变 WebServices 的 URL 地址</title>
      <description>&lt;p&gt;无法直接动态切换，每次都需要重新示例化。&lt;/p&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;button1_Click&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;object&lt;/span&gt; &lt;span class="n"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;EventArgs&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;checkBox1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Checked&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"http://app.lttc.cn/wince.asmx"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"http://10.20.71.196:8090/wince.asmx"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;//这里必须重新 new 一个新对象，直接修改原来的对象不起作用 &lt;/span&gt;
    &lt;span class="n"&gt;ws&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;ServiceReference1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WinCESoapClient&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Endpoint&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ServiceModel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;EndpointAddress&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;MessageBox&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Show&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetDateTime&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;StringResult&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 04 Nov 2020 21:52:15 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/215</link>
      <guid>https://xxb.lttc.cn/topics/215</guid>
    </item>
    <item>
      <title>SQL Server 删除重复记录（没有主键的重复数据）</title>
      <description>&lt;p&gt;如图
&lt;img src="/uploads/photo/attachment/2011/thread/7_2_cce0f7556525608.png!large" title="" alt="20201104_134937"&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 04 Nov 2020 21:49:58 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/214</link>
      <guid>https://xxb.lttc.cn/topics/214</guid>
    </item>
    <item>
      <title>信息部值日表（更新日期：2020.03.21）</title>
      <description>&lt;p&gt;劳动最光荣~&lt;/p&gt;

&lt;p&gt;值日表更新日期：2020-3-21&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/attachment/2003/thread/12_2_b1d4323e82194ab.png!large" title="" alt="20200321155403"&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Sat, 21 Mar 2020 23:54:43 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/204</link>
      <guid>https://xxb.lttc.cn/topics/204</guid>
    </item>
    <item>
      <title>SQL Server 分批删除大量数据</title>
      <description>&lt;p&gt;当删除一个数据量在千万及以上的大表中的部分数据时，使用 delete from 表名 where 条件删除记录时执行的时间会比较长，日志文件急速增长，通过以下分批删除的方式可以稍微好一点。&lt;/p&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;--分批删除大量数据&lt;/span&gt;
&lt;span class="k"&gt;declare&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt; &lt;span class="c1"&gt;--每批删除的记录数&lt;/span&gt;

&lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="k"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="n"&gt;getdate&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;while&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
     &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;KHData_History&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;DataTime&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'2019/12/08'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
     &lt;span class="n"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@@&lt;/span&gt;&lt;span class="n"&gt;rowcount&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;@&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="k"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="n"&gt;getdate&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="n"&gt;WaitFor&lt;/span&gt; &lt;span class="n"&gt;DELAY&lt;/span&gt; &lt;span class="s1"&gt;'00:00:02'&lt;/span&gt; &lt;span class="c1"&gt;--等待几秒再继续&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="s1"&gt;'删除完成'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明：&lt;code&gt;@count&lt;/code&gt; 为每次删除的数据量，此处设置&lt;code&gt;10w&lt;/code&gt;，可根据实际情况调整。&lt;/p&gt;

&lt;p&gt;参考：&lt;a href="https://weiku.co/article/484/" rel="nofollow" target="_blank"&gt;https://weiku.co/article/484/&lt;/a&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Thu, 12 Dec 2019 19:41:09 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/201</link>
      <guid>https://xxb.lttc.cn/topics/201</guid>
    </item>
    <item>
      <title>推荐必读：提问的智慧 👍</title>
      <description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;这是一篇长文，看完需要十几分钟的时间。如果之前没有认真看过并且思考过，&lt;code&gt;这十几分钟会改变你的职业生涯&lt;/code&gt;。这文章可能会出现一些让人不适的词语或者过时的例子，但我认为这不会影响它要表达的内容，而你需要好好琢磨作者的思想。&lt;/p&gt;

&lt;p&gt;《提问的智慧》是一个敲门砖，它把黑客间的礼仪和准则明白地写下来，让我们了解到一个事实，为什么那些看起来很牛的人几乎从不提问。其实他们也有问题，但是通常在提问之前就自己解决了。不是因为他们本来就牛，而是解决问题的经历让他们成为牛人。最终，你只会看到网络上多了一篇文章：关于解决 XXX 问题的方案。&lt;/p&gt;

&lt;p&gt;要不要花十几分钟改变自己的人生，决定权在自己。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;当你拋出一个技术问题时，最终是否能得到有用的回答，往往取决于你所提问和追问的方式。本指南将教你如何正确的提问以获得你满意的答案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="提问的智慧："&gt;提问的智慧：&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md" rel="nofollow" target="_blank"&gt;https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md&lt;/a&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Fri, 06 Sep 2019 04:36:42 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/197</link>
      <guid>https://xxb.lttc.cn/topics/197</guid>
    </item>
    <item>
      <title>Markdown 简明语法手册</title>
      <description>&lt;p&gt;Markdown 简明语法手册：&lt;a href="http://doc.xxb.lttc.cn/tool/markdown.html" rel="nofollow" target="_blank"&gt;http://doc.xxb.lttc.cn/tool/markdown.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Markdown 是一种纯文本格式的标记语言。通过简单的标记语法，它可以使普通文本内容具有一定的格式。&lt;/p&gt;

&lt;p&gt;相比 WYSIWYG (所见即所得) 编辑器有以下优点
因为是纯文本，所以只要支持 Markdown 的地方都能获得一样的编辑效果，可以让作者摆脱排版的困扰，专心写作。
操作简单，word 等编辑时标记个标题要先选中内容，再点击导航栏的标题按钮，选择几级标题。而 Markdown 只需要在标题内容前加 # 即可。
对于程序员来说支持代码语法高亮更是好用的很。&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 19:15:59 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/196</link>
      <guid>https://xxb.lttc.cn/topics/196</guid>
    </item>
    <item>
      <title>SQL Server 2012 使用 offset fetch 实现分页查询</title>
      <description>&lt;p&gt;sql server 2012 新增 order by 子句的 offset fetch 语法，可以实现分页，或是其它查询需求。
官方文档：&lt;a href="https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms188385v=sql.110)" rel="nofollow" target="_blank"&gt;https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms188385v=sql.110)&lt;/a&gt;(
示例代码：&lt;/p&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;select&lt;/span&gt;
  &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WarehouseGuid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UseOrgGuid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name_CN&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;Lydwmc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillDate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillNO&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RowNO&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RowGuid&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;STK_MaterialPick_YnDyeFab&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
  &lt;span class="k"&gt;left&lt;/span&gt; &lt;span class="k"&gt;join&lt;/span&gt; &lt;span class="n"&gt;STK_MaterialPickDetail_YnDyeFab&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillTypeCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillTypeCode&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillDate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillDate&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillNO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillNO&lt;/span&gt;
  &lt;span class="k"&gt;left&lt;/span&gt; &lt;span class="k"&gt;join&lt;/span&gt; &lt;span class="n"&gt;BAS_Material_YnDyeFab&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MaterialGuid&lt;/span&gt;
  &lt;span class="k"&gt;left&lt;/span&gt; &lt;span class="k"&gt;join&lt;/span&gt; &lt;span class="n"&gt;BAS_OrgFrame&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Guid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UseOrgGuid&lt;/span&gt;
&lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
  &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillDate&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'2017/08/01'&lt;/span&gt;
  &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CancelUser&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;
  &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BaseQuantity&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BillNO&lt;/span&gt; &lt;span class="k"&gt;desc&lt;/span&gt;
&lt;span class="k"&gt;offset&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt; &lt;span class="k"&gt;row&lt;/span&gt; &lt;span class="k"&gt;fetch&lt;/span&gt; &lt;span class="k"&gt;next&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt; &lt;span class="k"&gt;rows&lt;/span&gt; &lt;span class="k"&gt;only&lt;/span&gt; &lt;span class="c1"&gt;--获取第50页，第页15条记录&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="offset fetch 与 row_number 比较"&gt;offset fetch 与 row_number 比较&lt;/h3&gt;
&lt;p&gt;经测试 &lt;code&gt;OFFSET FETCH&lt;/code&gt; 查询的记录在表中越靠后（页码越大），开销会更大。&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 19:13:21 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/195</link>
      <guid>https://xxb.lttc.cn/topics/195</guid>
    </item>
    <item>
      <title>C# 创建动态类型</title>
      <description>&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;dynamic&lt;/span&gt; &lt;span class="n"&gt;tableOption&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Dynamic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ExpandoObject&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isPage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;border&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isBorder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;align&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"center"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;menuAlign&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"center"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;tableOption&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;listColum&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 19:08:26 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/194</link>
      <guid>https://xxb.lttc.cn/topics/194</guid>
    </item>
    <item>
      <title>C#  string 怎么转换成泛型 T</title>
      <description>&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;try&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;ret&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;Convert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ChangeType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"100"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;catch&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 19:06:57 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/193</link>
      <guid>https://xxb.lttc.cn/topics/193</guid>
    </item>
    <item>
      <title>C# 操作 Oracle 数据库及工具类简单封装</title>
      <description>&lt;h3 id="连接字符串"&gt;连接字符串&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;add name="connOA_GK" connectionString="User Id=xxx;Password=xxx;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.200.0.53)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ecology)))" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="DLL 引用"&gt;DLL 引用&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Oracle.ManagedDataAccess.dll
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="操作工具类"&gt;操作工具类&lt;/h3&gt;&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Oracle.ManagedDataAccess.Client&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;PEMSoft.Web.AppServer.Common&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OracleHelper&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// 连接字符串&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;connStr&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="c1"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// 最新一次执行出错的错误信息&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;ErrMsg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;OracleHelper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;connStr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connStr&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;connStr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// 执行SQL语句,返回受影响行数&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;param name="sql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;param name="parameters"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;ExecSql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;params&lt;/span&gt; &lt;span class="n"&gt;OracleParameter&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;try&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OracleConnection&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OracleConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connStr&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
                    &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OracleCommand&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CreateCommand&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CommandText&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Parameters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddRange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ExecuteNonQuery&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;ErrMsg&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// 执行SQL语句，返回DataTable&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;param name="sql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;param name="parameters"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;DataTable&lt;/span&gt; &lt;span class="nf"&gt;GetDataTable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;params&lt;/span&gt; &lt;span class="n"&gt;OracleParameter&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;try&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OracleConnection&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OracleConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connStr&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
                    &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OracleCommand&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CreateCommand&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CommandText&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Parameters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddRange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="n"&gt;OracleDataAdapter&lt;/span&gt; &lt;span class="n"&gt;adapter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;OracleDataAdapter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="n"&gt;DataTable&lt;/span&gt; &lt;span class="n"&gt;datatable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;DataTable&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
                        &lt;span class="n"&gt;adapter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;datatable&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;datatable&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;ErrMsg&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 19:04:44 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/192</link>
      <guid>https://xxb.lttc.cn/topics/192</guid>
    </item>
    <item>
      <title>ERP600 数据交换报错：Row changed between retrieve and update</title>
      <description>&lt;p&gt;数据交换报错如下，可能的解决方案：确认一下是不是多个人同时开着数据交换，数据交换只能同时开一个。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Row changed between retrieve and update.
No changes made to database.
DELETE FROM act_zzbz_ssdjb WHERE id = 3225365
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Row changed between retrieve and update.
No changes made to database.
UPDATE act_pointer SET pointer = 3225388 WHERE infotype = '本地色纱登记表' AND pointer = 3225358  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="/uploads/photo/attachment/1908/thread/5_2_4e05e9040c02748.png!large" title="" alt="20190807105349"&gt;
&lt;img src="/uploads/photo/attachment/1908/thread/5_2_54e1bce59440c04.png!large" title="" alt="20190807105353"&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Wed, 07 Aug 2019 18:56:55 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/191</link>
      <guid>https://xxb.lttc.cn/topics/191</guid>
    </item>
    <item>
      <title>SQL Server 的缺陷：将截断字符串或二进制数据是哪个字段？</title>
      <description>&lt;p&gt;悲催的事，在 SQL Server 2019 之前我们是无法通过提示信息定位到底是如个字段超了长度，只能自己一个字段一个字段分析查看。&lt;br&gt;
终于， SQL Server 2019 可以返回详细的错误信息了。&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/attachment/1907/thread/7_2_e47303b9c62a8db.png!large" title="" alt="20190722085027"&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Mon, 22 Jul 2019 16:50:50 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/189</link>
      <guid>https://xxb.lttc.cn/topics/189</guid>
    </item>
    <item>
      <title>Windows 8/10 离线安装 .net 3.5</title>
      <description>&lt;p&gt;.net 3.5 是某些程序必须的组件，全新安装的系统默认没有安装 .net 3.5，通过系统程序功能安装时会从网下载文件安装，有时因为网络问题可能失败，这里提供一个离线安装方法。&lt;/p&gt;

&lt;p&gt;控制面板启用.NET Framework 3.5 的方法：&lt;br&gt;
打开控制面板，点击 “程序”，选择 “启用或关闭 Windows 功能”，选中 Microsoft .NET Framework 3.5 即可。&lt;br&gt;
注意：两个子项适用需要 WCF 脚本和处理程序映射的开发人员，普通用户无需选择。&lt;br&gt;
上述安装方法需要使用 Internet 连接，如果不希望使用 Internet 连接，可以使用 DISM (部署映像服务和管理工具) 离线部署 .NET Framework 3.5。&lt;/p&gt;

&lt;p&gt;Win8.1 离线部署 .NET Framework 3.5 的方法：  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Win+X 选择命令提示符（管理员模式）。&lt;/li&gt;
&lt;li&gt;加载安装镜像，本例中安装镜像加载至 d 盘，则安装源位于 d:\sources\sxs，输入如下命令：
&lt;code&gt;
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs
&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>xinggang</author>
      <pubDate>Mon, 22 Jul 2019 16:35:00 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/188</link>
      <guid>https://xxb.lttc.cn/topics/188</guid>
    </item>
    <item>
      <title>SQL Server datetime 类型注意毫秒的精度问题</title>
      <description>&lt;p&gt;微软官方文档指明 datetime 类型的精度为 ：千分之三秒（3.33 毫秒、0.00333 秒）。&lt;br&gt;
所有的 datetime 类型的值在显示、处理时有所调整。&lt;br&gt;
即会圆整到几个特殊的毫秒个位值：0、3、7，如：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;9、0、1 会调整到 0；
5、6、7、8 会调整到 7；
2、3、4 会调整到 3。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也就是说，你无法在 SQL 中保存这个时间：2019-07-22 08:00:00.002，因为他会自动调整到 2019-07-22 08:00:00.003&lt;br&gt;
如果需要高精度时间，请用 datetime2 类型&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Mon, 22 Jul 2019 16:31:03 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/187</link>
      <guid>https://xxb.lttc.cn/topics/187</guid>
    </item>
    <item>
      <title>GridLookUpEdit 按 Ctrl+V 自动按粘贴内容搜索</title>
      <description>&lt;p&gt;理想的效果是在 GridLookUpEdit 中粘贴内容，如果数据源中有的话能直接选中对应的项，但似乎不好实现，这里是一个折中方案，粘贴后自动根据内容搜索并弹出搜索结果面板，用户需要再选择一下。&lt;/p&gt;

&lt;p&gt;&lt;img src="/uploads/photo/attachment/1907/thread/4_2_74e39908a94f833.png!large" title="" alt="2019072281624"&gt;&lt;/p&gt;

&lt;p&gt;by zhangpeng&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Mon, 22 Jul 2019 16:18:40 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/186</link>
      <guid>https://xxb.lttc.cn/topics/186</guid>
    </item>
    <item>
      <title>菜单栏文本输入框鼠标移动上自动全选文本</title>
      <description>&lt;p&gt;见图：&lt;img src="/uploads/photo/attachment/1906/thread/4_2_a91dc64bdbf8063.png!large" title="" alt="20190615082731274"&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Sat, 15 Jun 2019 16:31:06 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/182</link>
      <guid>https://xxb.lttc.cn/topics/182</guid>
    </item>
    <item>
      <title>XtraReport 主从表报表分页打印设计视频教程</title>
      <description>&lt;p&gt;多个单据（主从表）一起打印，按单据编号分页。&lt;br&gt;
视频地址：
&lt;a href="http://down.lttc.cn/Video/20190528_XtraReport_%E4%B8%BB%E4%BB%8E%E8%A1%A8%E6%8A%A5%E8%A1%A8%E5%88%86%E9%A1%B5%E6%89%93%E5%8D%B0.rar" rel="nofollow" target="_blank"&gt;http://down.lttc.cn/Video/20190528_XtraReport_%E4%B8%BB%E4%BB%8E%E8%A1%A8%E6%8A%A5%E8%A1%A8%E5%88%86%E9%A1%B5%E6%89%93%E5%8D%B0.rar&lt;/a&gt;&lt;/p&gt;</description>
      <author>xinggang</author>
      <pubDate>Tue, 28 May 2019 23:53:09 +0800</pubDate>
      <link>https://xxb.lttc.cn/topics/180</link>
      <guid>https://xxb.lttc.cn/topics/180</guid>
    </item>
  </channel>
</rss>
