<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ggw128的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ggw128</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ggw128]]></copyright><item><title><![CDATA[使用泛型接口降低接口与其它实体对象的耦合度]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/20848695</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/20848695</guid><author>ggw128</author><pubDate>Sun, 09 Mar 2014 16:16:59 +0800</pubDate><description><![CDATA[接口:
   public  interface IEntity
    {
       string GetItemName(T oItem);

    }

实现接口的类:
   public class Entity:IEntity
    {
        #region IEntity 成员

        public string GetItemName(Item o]]></description><category></category></item><item><title><![CDATA[在SQL2005中借助clr，调用外部C#程序]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7226692</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7226692</guid><author>ggw128</author><pubDate>Wed, 01 Feb 2012 21:14:27 +0800</pubDate><description><![CDATA[平时SQL数据处理时，使用T-SQL可以完成绝大部份的操作，但有些操作若借用外部dll来实现会更方便高效(比如：将磁盘中的文件序列化后写入数据表、利用正则表达式有规律的替换文本内容等等）。
以下例子演示整个实现过程：
1、新建一个类库程序命名为Regex，打开Visual Studio 2008，点击File，点击New，点击Project，在弹出的New Project对话框中选择Class]]></description><category></category></item><item><title><![CDATA[杀进程的一些方法]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7185440</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7185440</guid><author>ggw128</author><pubDate>Sun, 08 Jan 2012 17:32:01 +0800</pubDate><description><![CDATA[使用Process.Kill()杀进程，一些由System用户启动的进程可能会报出“拒绝访问”的错误。
经查，可以使用以下命令杀掉进程。
 
 System.Diagnostics.Process[] arrPro = 
                System.Diagnostics.Process.GetProcessesByName("winword"); //进程名称]]></description><category></category></item><item><title><![CDATA[WinForm:简单实现RichTextBox加载背景图]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7179751</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7179751</guid><author>ggw128</author><pubDate>Thu, 05 Jan 2012 22:56:05 +0800</pubDate><description><![CDATA[为RichTextBox加载背景图，尝试过不少方法，总结后，以下方法较为完善，且简单实现。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using Syst]]></description><category></category></item><item><title><![CDATA[根据日志文件将数据库还原至指定的时间点]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7110127</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7110127</guid><author>ggw128</author><pubDate>Wed, 28 Dec 2011 21:44:46 +0800</pubDate><description><![CDATA[----------------------备份处理--------------------------
/*
数据库名：TestDB
按计划定期执行备份语句，1.备份日志，2.收缩日志，3.备份数据库
*/

Use [master]
go
BACKUP LOG [TestDB] TO  DISK = N'c:\testDB_Log.bak' WITH NOFORMAT, INI]]></description><category></category></item><item><title><![CDATA[更改文件的修改日期]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7078730</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7078730</guid><author>ggw128</author><pubDate>Fri, 16 Dec 2011 21:20:04 +0800</pubDate><description><![CDATA[因为实际需要，将文件修改日期更改为系统当前时间，可通过COPY命令实现。
假定需要更改修改日期的文件存放在C:\Test目录下，进入命令提示符：进入C:\Test.
 
输入命令： Copy *.*+,,]]></description><category></category></item><item><title><![CDATA[C#接收Windows系统的关机(注销）事件]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7055144</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7055144</guid><author>ggw128</author><pubDate>Thu, 08 Dec 2011 22:12:55 +0800</pubDate><description><![CDATA[protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            //在的程序中加上事件: 
            Microsoft.Win32.SystemEvents.SessionEnding +=
            new Microsoft.W]]></description><category></category></item><item><title><![CDATA[如何从数据库的完整日志模式还原误删除的数据]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7051753</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7051753</guid><author>ggw128</author><pubDate>Wed, 07 Dec 2011 23:27:01 +0800</pubDate><description><![CDATA[原理与实现要点：


假设出问题的数据库为A, 新恢复后的数据库为B
1.前提：A数据库的恢复模式必须为：完整。
2.备份A数据库的日志，假设文件名为log.bak
3.使用A数据库的最近的完整备份，使用 WITH NORECOVERY 的方式，恢复为B数据库
4.使用恢复日志的方式，指定还原的时间点(T)，将Log.bak文件还原到B数据库，完成后，B数据库的内容即是T时间之前的完]]></description><category></category></item><item><title><![CDATA[使用如何取出windows系统用户输入的闲置时间]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/7009991</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/7009991</guid><author>ggw128</author><pubDate>Thu, 24 Nov 2011 22:26:29 +0800</pubDate><description><![CDATA[思路：步骤1.使用API GetLastInputInfo 取出系统最近的输入时间
步骤2.使用系统启动后时间 System.Environment.TickCount  减去 系统最近的输入时间。
   public partial class Form42 : Form
    {
        public Form42()
        {
            Init]]></description><category></category></item><item><title><![CDATA[调整用API实现窗体淡出特效与窗体弹出后不被激活]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6991788</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6991788</guid><author>ggw128</author><pubDate>Sat, 19 Nov 2011 20:59:30 +0800</pubDate><description><![CDATA[本文实例调用API函数实现，实现以下两个目的：
1.显示窗体时，具有淡出效果；
2.显示窗体后，窗体可以不被激活。
    public partial class Form39 : Form
    {
        //取出激活窗体
        [System.Runtime.InteropServices.DllImport("user32.dll")]]]></description><category></category></item><item><title><![CDATA[使用反射取出实例挂勾的事件列表]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6984688</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6984688</guid><author>ggw128</author><pubDate>Thu, 17 Nov 2011 22:01:49 +0800</pubDate><description><![CDATA[工作中，常常需要在程序的运行中，查看一个实例（如控件，或其它实体类）所挂勾的事件，以及事件方法名等等。
编写以下代码，可以基本上实现这个目的。但有某些事件还是不能取出来，比如，以下代码中的TextBox的TextChanged事件。欢迎网友读过后，若能帮忙点评修正，不胜感激！
实现代码：
    private void btnAddHandler_Click(object sender,]]></description><category></category></item><item><title><![CDATA[Remoting异步回调，向在线用户广播消息]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6940048</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6940048</guid><author>ggw128</author><pubDate>Sun, 06 Nov 2011 10:26:36 +0800</pubDate><description><![CDATA[本文目的：向Remoting在线客户端广播消息。
使用的主要技术：异步，回调，广播。
 
实现过程：
定义远程实例：
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting.Messaging;

namespace RemoteObject]]></description><category></category></item><item><title><![CDATA[举例说明Control.Invoke, Control.BeginInvoke, DelegateBeginInvoke]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6939478</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6939478</guid><author>ggw128</author><pubDate>Sat, 05 Nov 2011 22:20:43 +0800</pubDate><description><![CDATA[Control.Invoke,  Control.BeginInvoke,  DelegateBeginInvoke是很常用的调用委托方法。
        它们各有区别，以下代码通过举例说明这三者之间的不同点：
   #region 公用方法
        //定义委托
        private delegate string  InvokeDelegate(string str]]></description><category></category></item><item><title><![CDATA[进程间发送消息整理(高级方案)]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6933689</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6933689</guid><author>ggw128</author><pubDate>Thu, 03 Nov 2011 22:15:14 +0800</pubDate><description><![CDATA[接上篇：
高级方案与简易方案的区别主要在于：前者可以定义需要传递的struct。
公用结构：
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace Common
{
    //发送共享消息的结构]]></description><category></category></item><item><title><![CDATA[进程间发送消息整理(简易方案)]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6933651</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6933651</guid><author>ggw128</author><pubDate>Thu, 03 Nov 2011 21:23:17 +0800</pubDate><description><![CDATA[近来因项目的需要，触及到程序进程之间的消息通讯，根据应用的简繁程序，归纳成简易方案与高级方案。本文介绍简易方案，高级方案于下一篇中整理。
        以下代码包括共用结构定义，发送方，接收方三个部份的代码：
        结构定义：
using System;
using System.Collections.Generic;
using System.Text;
using S]]></description><category></category></item><item><title><![CDATA[慎用ActiveReport的ARCustomForm自定义纸张尺寸]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6886281</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6886281</guid><author>ggw128</author><pubDate>Tue, 18 Oct 2011 22:37:33 +0800</pubDate><description><![CDATA[ActiveReport 的纸张设置中，对于一些非规格纸张，有提供便利的操作。 可以通过以下代码设置(不需通过windows的打印机服务器属性设置来建立新格式)：
//rpt 是AcitveReport3实例

    rpt.PageSettings.PaperKind =]]></description><category></category></item><item><title><![CDATA[利用OpenRowSet将文件导入数据库]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6806453</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6806453</guid><author>ggw128</author><pubDate>Fri, 23 Sep 2011 22:17:26 +0800</pubDate><description><![CDATA[最新做数据导入，需要将文件写入到Image字段，尝试了使用SQL的OpenRowSet实现，将过程整理如下：
以SQL2005为例：
1.打开OpenRowSet 和OpenDataSource支持：
(1)向导式：
开始 —> 
所有程序 —> 
Microsoft]]></description><category></category></item><item><title><![CDATA[利用DataDynamics.SpreadBuilder生成Excel文档]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6791850</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6791850</guid><author>ggw128</author><pubDate>Mon, 19 Sep 2011 22:42:25 +0800</pubDate><description><![CDATA[ActiveReport(以下简称AR)有自带的XlsExport组件，利用该组件，可以把AR的Document导出到Excel文件中。
 
但是导出的格式令人非常不满意，主要存在以下问题：
1.若字段本身是string类型，内容为纯数字(如“01234”)，且设计报表控时]]></description><category></category></item><item><title><![CDATA[ActiveReport 预览正常但打印输出空白页的解决方案]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6791732</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6791732</guid><author>ggw128</author><pubDate>Mon, 19 Sep 2011 22:13:23 +0800</pubDate><description><![CDATA[最近在做项目时，使用ActiveReport(以下简称AR)做报表输出，具体的场景与问题如下：
场景：
纸张尺寸：8.5in*5.5in
边距：上下左右全设为0.1in
在打印某些单据资料时，遇到以下问题：
打印机是EPSON LQ-300K+ /II ESC/P 2，]]></description><category></category></item><item><title><![CDATA[AcitveReport.Parameters的使用方法]]></title><link>https://blog.youkuaiyun.com/ggw128/article/details/6776307</link><guid>https://blog.youkuaiyun.com/ggw128/article/details/6776307</guid><author>ggw128</author><pubDate>Wed, 14 Sep 2011 22:44:25 +0800</pubDate><description><![CDATA[AcitveReport.Parameters的使用方法
1.原理：
           Parameters 其类型是： DataDynamics.ActiveReports.ParameterCollection。 用于外部数据源与Report实例的参数传递。]]></description><category></category></item></channel></rss>