2016年1月10日 星期日

Visual Studio 2013 套件未正確載入 Microsoft.VisualStudio.Editor.Implementation.EditorPackage


未正確地載入套件
Microsoft.VisualStudio.Editor.Implementation.EditorPackage

可能是組態有所變更或安裝了其他擴充功能所致。如需詳細資訊,可查看檔案
c:\users\user account\AppData\Roaming\Microsoft\VisualStudio\12.0\ActivityLog.xml


按照訊息指示重啟Visual Studio,雖然不在出現此訊息,
開啟專案後,這訊息就跟鬼打牆一樣又冒了出來,

解決方法:

1、關閉Visual Studio
2、刪除ComponentModelCache這個資料夾
     C:\Users\{登入者}\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache

要注意的地方是
1、登入者=登入帳號
2、Local資料夾,按照訊息指示可能會一直在Roaming這個資料夾下打轉找不到要刪除的資料夾。


2015年8月7日 星期五

以SQL Server發送郵件

sp_send_dbmail (Transact-SQL)

 Sends an e-mail message to the specified recipients. The message may include a query result set, file attachments, or both. When mail is successfully placed in the Database Mail queue, sp_send_dbmail returns the mailitem_id of the message. This stored procedure is in the msdb database.

 reference from : https://msdn.microsoft.com/en-us/library/ms190307.aspx

Sending an e-mail message with the results of a query

This example sends an e-mail message to Dan Wilson using the e-mail address danw@Adventure-Works.com. The message has the subject Work Order Count, and executes a query that shows the number of work orders with a DueDate less than two days after April 30, 2004. Database Mail attaches the result as a text file.
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Adventure Works Administrator',
    @recipients = 'danw@Adventure-Works.com',
    @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
                  WHERE DueDate > ''2004-04-30''
                  AND  DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
    @subject = 'Work Order Count',
    @attach_query_result_as_file = 1 ;



Note1. Enable the Database Mail extended stored procedures.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO

reference from : https://technet.microsoft.com/en-us/library/ms191189(v=sql.110).aspx

Note2. Create database mail profile via wizard.

2015年8月4日 星期二

遞迴(Recursive)

遞迴(Recursion)


一個還沒執行完又呼叫自己,符合條件時才停止的副程式。
一個不停呼叫自己直到滿意為止的程式。

初學時,總覺得莫名其妙,明明迴圈就可以處理了,為何要改成這種沒寫好就會陷入無窮迴圈的模式...

遇過有人看到所寫的程式寫法太"單純",沒用到遞回就質疑學藝不精...

洪教授寫了一篇愚公移山與遞迴,清楚說明了這跟效率與程式可讀性有關,

除此之外,個人認為還有Programmer 習慣與思考迴路的影響...

舉例來說:
假設每個月存3000元,隔月比上個月多存100元,計算存到n個月後會有多少錢?
也就是第1個月存3000元、第2個月存3100、第3個月存3200...

迴圈寫法
///<param name="n">計算月數</param>
///<param name="inc">每月增額</param>
///<param name="deposit">存款</param>
///<returns></returns>
protected int recursive(int n, int inc, int deposit)
{
    int mny = 0;
    for (int i = 1; i <= n; i++)
    {
        mny = mny + deposit + inc * (i - 1);
    }
    return mny;
}

遞迴寫法
///<param name="n">計算月數</param>
///<param name="inc">每月增額</param>
///<param name="deposit">存款</param>
///<returns></returns>
protected int recursive(int n, int inc, int deposit)
{
    return (n == 1) ? deposit : deposit + recursive(n - 1, inc, deposit + inc);
}

2015年7月16日 星期四

VHD虛擬磁碟擴充

VHD 檔案,Virtual Machine Hard Disk 虛擬磁碟

實體硬碟遇到空間不足時,除了刪檔案外就是在買一顆更大的硬碟,

虛擬磁碟遇到空間不足,只要硬碟夠大,還可以額外擴充,

擴充方法一:

1.新增一個容量更大的虛擬磁碟
2.把原虛擬磁碟上的檔案搬到1
3.刪除原虛擬磁碟檔案
4.將新的虛擬磁碟重新命名為原名稱 balabalabala..............

擴充方法二:

Step1.擴充容量的配置
可以透過工具vhd resizer,若使用Hyper-V則可以透過Hyper-V管理員呼叫「編輯虛擬硬碟精靈」  精靈可以協助將指定的虛擬磁碟檔案「壓縮/轉換/擴充」

Step2.讓Step1配置生效,有兩種方式:
    I. 下指令(參照:孤影大的孤影棧 - [tips]擴充vhd空間)

     a. 開始,於執行輸入diskpart
     b. 輸入list disk
     c. 輸入select disk # (#為磁碟編號,從list disk所顯示的訊息中可取得)
     d. 輸入detail disk
     e. 輸入select Volume # (#為磁區編號,從detail disk所顯示的訊息中可取得)
     f. 輸入extend


    II. 使用磁碟管理員
         a. 掛接虛擬磁碟檔案(可以看到擴充的容量)
         b. 選擇虛擬磁碟後按滑鼠右鍵,執行「延伸磁碟區」並依精靈指示操作。

2015年6月21日 星期日

Restart


東忙西忙瞎忙了一陣,

近日又想起這個已經荒廢許久,可說從沒認真經營過的部落格...

費神費時才回憶起登入密碼 囧

登入一看,原來最近一次發文是在2012/3/30  XD

起初,

一方面是想為自己的工作歷程留下部份軌跡,

一方面是想找尋自己的其他可能性,

一方面是想讓自己能夠同時兼顧工作與生活,

有時機會必須自己去創造,

有時機會來的讓人措手不及,

當努力創造的機會在萌牙之初,碰上了突如其來的機會時,

幸運的是,生活踏實了許多,

不幸的是,腦神經錯亂了許多,

計畫永遠改不上變化,

不想讓自己的人生留下遺憾,重啟了這個部落格,

但在可見的未來數月,尚有諸多可能讓人措手不及的變化,

想做的事情太多、太雜,

這次可以持續多久呢 ~"~

我會努力的!!

2012年3月30日 星期五

每寫必忘的字串格式


常用的通用格式字元
格式字元用途
C以貨幣格式($)顯示數值,每千位就會用逗號隔開。Ex: $123,456。 
D以十進位格式顯示數值。
E以科學記號(指數)格式顯示數值。
F以固定格式顯示數值。
G以一般格式顯示數值。
N以數字格式顯示數值。
X以十六進位格式顯示數值。
yyyy/MM/dd日期格式,代表年/月/日。
HH:mm:ss時間格式,代表時:分:秒。

常用格式(正規表示式)
格式(需區分大小寫)輸入的值輸出的值
{0:yyyy}2012/3/30(日期)2012
{0:yyyy/M}2012/3/30(日期) 2012/3
{0:yyyy/MM}2012/3/30(日期)2012/03(月份自動補零) 
{0:yyyy年MM月dd日}2012/3/30(日期)2012年03月30日
{0:ddd}2012/3/30(日期)星期五
{0:HH:mm:ss}Time12:30:50
{0:HH:mm}Time12:30
{0:D8}1234500012345(自動補足8位數,前方自動補0) 
{0:C}12345.6789$12,345.68(四捨五入至小數第2位)
{0:N4}1234512,345.0000(小數點後方自動補足4個0)
{0:E4}12345.67891.2345678900E+004

微軟的參考範例:


2012年3月25日 星期日

在VS2010中驗證HTML5

Visual Studio 2010現在也可以支援HTML5   : )


只要下載更新檔,更新後在HTML原始檔編輯工具列中,就可以選擇以HTML5的結構進行驗證目標囉!

樣式表工具列中,亦可以選擇以CSS3進行階層式樣式表的驗證。


不裝更新檔就不能用Visual Studio寫HTML5了嗎?
當然不是,功力夠的話想用記事本寫也沒問題,
但是驗證工具的輔助,更能事半功倍~~


必要安裝:Visual Studio 2010 & Visual Studio 2010 SP1