作者: admin

  • 使用Request.Url.Scheme+Request.Url.Authority拼URL时要注意的

    Request.Url.Scheme 返回的仅仅是“http”字符串,注意,它不带 ://

    Request.Url.Authority 返回的是域名+端口

    完整的拼URL应该这样写:

    Request.Url.Scheme + "://" + Request.Url.Authority

    一下午时间的教训,之前写错了,一直404.或者打开页面时显示新标签页。。

  • 在SQL SERVER的 SELECT语句中执行类型if的条件选择

    在SQL SERVER的 SELECT语句中执行类型if的条件选择,使用CASE … WHEN…语句,如下:

    SELECT
    t2.UserID , --操作人
    t2.OrderNum , --订单编号
    t2.CustomerID , --客户姓名
    t2.StyleNo , --款号
    t2.Size , --尺码
    t2.Picture , --产品图片
    t2.Number , --数量
    
    
     --工厂
    (SELECT Name FROM [User] t3 WHERE t3. UserID=t1 .UserID) AS Factory,
    t1.OrderType ,
    
    -- 采购方式
    PurchaseWay=
    CASE t1 .Type
            WHEN 1 THEN '现付'
            WHEN 2 THEN '银行转帐'
            WHEN 3 THEN '担保交易'
            WHEN 4 THEN '结算'
    END,
    
    t1.LoginName , -- 采购人
    t1.CreateTime , --采购日期
    t1.ShouldArrivalDate , --工厂应交付日期
    t1.DeliveryDate , --工厂发货日期
    t1.ActualArrivalDate , --我方签收日期
    
    --采购单状态
    PurchaseStatus=
    CASE t1 .Status
            WHEN 1 THEN '未完成'
            WHEN 2 THEN '取消'
            WHEN 3 THEN '完成'
            WHEN 4 THEN '中途变更'
    END,
    
    t1.Remark , --采购备注
    
    --款项结算
    SettlementStatus=
    CASE t1 .StyleSettlement
            WHEN 1 THEN '未结算'
            WHEN 2 THEN '已结算未付款'
            WHEN 3 THEN '已结算已付款'
    END,
    
    
    t1.Amount --采购金额
    FROM Purchasing t1, [Order] t2
    WHERE t1 .OrderID = t2 .OrderID
      
  • 精灵五笔改造now时间格式

    精灵五笔改造now时间格式,在码表中查找now,然后添加下面的命令,并勾选新添加的在系统词汇之前

    $ddcmd(<date.yyyy>-<date.mm>-<date.dd> <time.h>:<time.mm>,<time.h>:<time.mm>)

    点击保存,然后输入 now,即可出现下面格式的日期时间
    2014-08-22 16:08

  • JFinal初试

    1、去jfinal官网下载使用文档,以及jfinal-1.8-lib.zip

    2、使用eclipse ee创建项目

    3、把相关jar包放到WEB-INF/lib目录下

    4、修改web.xml

  • 不是因为有了希望才坚持,而是因为坚持才有了希望

    1、不是因为有了希望才坚持,而是因为坚持才有了希望!

    2、不是因为有了机会才争取,而是因为争取了才有机会!

    3、不是因为会了才去做,而是因为做了才能会!

    4、不是因为成长了才去承担,而是因为承担了才会成长!

    5、不是因为拥有了才付出,而是因为付出了才拥有!

    6、不是因为突破了才挑战,而是因为挑战了才突破!

    7、不是因为成功了才成长,而是因为成长了才成功!

    8、不是因为有了领导力才懂得配合,而是因为懂得配合了才有领导力…

  • 不要追新,要稳定,要快速——从win8.1换到win7想到的

    换系统,换win7,这win8能折腾死人!

    也难怪,win8的销量上不去,并且今年被政府禁止采购。通过用了这几个月,发现这个系统真的是不好用。

    首选,输入法都没搞好,对大量的现有的输入法不能直接兼容,非要搞什么Metro,结果本来好端端的一个输入法,在win8上就残了(比如极点五笔,QQ五笔等),这也就摆了,不支持metro也还能将就着用,但是你别在我写代码的时候切换个中英文都蛋疼,代码的写的很不爽。

    其次,自带的IE11经常假死,有时想用下ie,还莫名其妙的死掉,只能换firefox。

    第三,对很多软件的兼容性有问题。

    所以,我还是决定换回win7,大众的眼睛是雪亮的,人没有傻子!

    从现在开始,我不再追新。不再追求最新的技术,对于新技术,保持关注就好,没必要当小白鼠。操作系统作为一个软件产品,首先是给人用的,是用来工作娱乐学习,最重要的是快速稳定好操作。我是一个程序员,但我首先是一个用户。

    还有一个教训:工作不能太依赖于系统,尽量所有的资料和代码放到服务器上或“云”中,这样,随时都可以重装。重装完成后只要把最基本的软件装上,然后工作中需要使用什么现装就行了。


    新系统要装的软件清单:

    1. RAR
    2. 千牛
    3. 极点五笔/QQ五笔
    4. VS2013
    5. 酷狗
    6. QQ
    7. FileZilla Client
    8. SVN
    9. firefox
    10. 印象笔记
    11. Notepad++
    12. sublime
    13. Dreamweaver
    14. TeamViewer 9
    15. SQLyog 
    16. Foxmail
    17. SQL Server Management Studio
    18. Adobe Photoshop CS5 

    要不然先这这样吧,等出Update2看看更新成什么样了。重装这些软件和系统又要花大量的时间。

    唉,算了,不折腾了!!

  • PHP使用stripslashes会把HTML代码直接显示出来

    PHP使用stripslashes会把HTML代码直接显示出来,而不是HTML代码的表现。

    可以用htmlspecialchars_decode来让HTML表现出来。

    有些时候必须要使用stripslashes,比如开启了magic_quotes_gpc,如果一个字符串中有引号之类的,PHP会自动给在单引号前加上双斜杠。这时,在使用的这个字符串的时候,就要用stripslashes()去掉,然后再用htmlspecialchars_decode来让HTML代码表现出来。

    shit!

    高版本的PHP中,magic_quotes_gpc这个特性已经移除了,我在PHP5.5和PHP5.5以上就没有发现这个问题。

  • php5.2开启pdo的PHP.ini配置

    php5.2开启pdo,需要同时打开下面两个扩展

    extension=php_pdo.dll
    extension=php_pdo_mysql.dll

    也就是说extension=php_pdo.dll是必须的,然后再打开对应的数据库的PDO扩展。

    PS. 查看了下自己服务器上的PHP5.6,只需要开启extension=php_pdo_mysql.dll就行了,已经没有php_pdo.dll这个扩展了。PHP5.5估计也是这样的,其它版本未知。

  • mysql 将时间戳直接转换成日期时间

    mysql把时间戳转换为日期时间:  FROM_UNIXTIME( lastlogin, '%Y-%m-%d' )

    例如:

    SELECT FROM_UNIXTIME( lastlogin, '%Y-%m-%d' ) AS lastlogin  FROM  jinke_members ORDER BY lastlogin DESC ;
  • VC跨进程实现自动托放

    VC跨进程实现自动托放

    //这个版本在64位系统上会造成目标进程闪退。
    void test()
    {
    	char szFile[] = "d:\\jinkexy.mse";
    	HWND hWnd = ::FindWindowA("3DSMAX", NULL);
    	if (hWnd == NULL) return;
    
    	DWORD dwBufSize = sizeof(DROPFILES) + sizeof(szFile) + 1;
    	BYTE *pBuf = NULL;
    	LPSTR pszRemote = NULL;
    	HANDLE hProcess = NULL;
    	__try {
    		pBuf = new BYTE[dwBufSize];
    		if (pBuf == NULL) __leave;
    		memset(pBuf, 0, dwBufSize);
    		DROPFILES *pDrop = (DROPFILES *)pBuf;
    		pDrop->pFiles = sizeof(DROPFILES);
    		strcpy((char *)(pBuf + sizeof(DROPFILES)), szFile);
    		DWORD dwProcessId;
    		GetWindowThreadProcessId(hWnd, &dwProcessId);
    		hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, dwProcessId);
    		if (hProcess == NULL) __leave;
    		pszRemote = (LPSTR)VirtualAllocEx(hProcess, NULL, dwBufSize, MEM_COMMIT, PAGE_READWRITE);
    		if (pszRemote == NULL) __leave;
    		if (WriteProcessMemory(hProcess, pszRemote, pBuf, dwBufSize, 0))
    			::SendMessage(hWnd, WM_DROPFILES, (WPARAM)pszRemote, NULL);
    	}
    	__finally {
    		if (pBuf != NULL) delete[]pBuf;
    		if (pszRemote != NULL) VirtualFreeEx(hProcess, pszRemote, dwBufSize, MEM_FREE);
    		if (hProcess != NULL) CloseHandle(hProcess);
    	}
    }
    
    
    
    //这个版本可以正常使用,和操作系统位数无关
    /**
    * Dia is running, so we simulate a drag & drop event.
    * Uses __argv & __argc for list of files to drop.
    */
    int CWork::DragAndDropDia(HWND hWnd)
    {
    	if (hWnd == NULL)
    	{
    		//char szFile[] = MSE_FILE;
    		hWnd = ::FindWindowA("3DSMAX", NULL);
    		if (hWnd == NULL)
    		{
    			AfxMessageBox(_TEXT("请先打开3dsmax窗口"));
    			return -1;
    		}
    		}
    
    		char szFile[MAX_PATH];
    		GetModuleFileNameA(NULL, szFile, MAX_PATH);
    		PathRemoveFileSpecA(szFile);
    		strcat_s(szFile, MAX_PATH, "\\maxscript.mse");
    
    		// int iNumFiles = (gUseRegVal) ? __argc - 1 : __argc - 2;
    		int iNumFiles = 1;
    		int iCurBytePos = sizeof(DROPFILES);
    		LPDROPFILES pDropFiles;
    		HGLOBAL hGlobal;
    		int i;
    
    		/* May use more memory than is needed... oh well. */
    		hGlobal = GlobalAlloc(GHND | GMEM_SHARE,
    		sizeof(DROPFILES) +
    		(_MAX_PATH * iNumFiles) + 1);
    
    		/* memory failure? */
    		if (hGlobal == NULL)
    		return -1;
    
    		/* lock the memory */
    		pDropFiles = (LPDROPFILES)GlobalLock(hGlobal);
    
    		/* set offset where the file list begins */
    		pDropFiles->pFiles = sizeof(DROPFILES);
    
    		/* no wide chars and drop point is in client coordinates */
    		pDropFiles->fWide = FALSE;
    		pDropFiles->pt.x = pDropFiles->pt.y = 100;
    		pDropFiles->fNC = FALSE;
    
    		//for (i = (gUseRegVal) ? 1 : 2; i < __argc; ++i)
    		//{
    		// strcpy(((LPSTR)(pDropFiles)+iCurBytePos), __argv[i]);
    		// /**
    		// * Move the current position beyond the file name copied.
    		// * +1 for NULL terminator
    		// */
    		// iCurBytePos += strlen(__argv[i]) + 1;
    		//}
    		strcpy(((LPSTR)(pDropFiles)+iCurBytePos), szFile);
    		iCurBytePos += strlen(szFile) + 1;
    
    
    		((LPSTR)(pDropFiles))[iCurBytePos] = 0;
    		GlobalUnlock(hGlobal);
    
    		/* Force dia to the foreground */
    		SetForegroundWindow(hWnd);
    
    	/* restore only if minimized */
    	if (IsIconic(hWnd))
    	{
    		ShowWindow(hWnd, SW_RESTORE);
    	}
    
    	//AfxMessageBox(L"准备发送消息");
    
    	/* send the file list */
    	::PostMessage(hWnd, WM_DROPFILES, (WPARAM)hGlobal, 0);
    
    
    	//::GlobalFree(hGlobal);
    	return 0;
    }