搜尋此網誌

2012年12月23日 星期日

你的電腦也有一堆 Thumbs.db 嗎?


自從Windows98開始後,資料夾裡就增加了圖片預覽的功能,
Windows會在具有圖片資料夾下,自動產生「Thumbs.db快取縮圖」,
而這個檔案就是保存這些預覽小圖的檔案!
理所當然,當你的圖片一多時,「Thumbs.db」這個文件就會隨之膨脹,
有時到破百MB也是有可能的。

「Thumbs.db」也是有它的好處,那就是可以加快咱們預覽圖片的速度,
但若是您用一些圖片管理軟體來管理您的圖檔,像是ACDsee或Google Picasa
那快取縮圖的功能就是多餘的啦,甚至會極度的佔用你家硬碟空間。
要不要把快取縮圖的功能關掉,那就由您自行評估決定吧!


◆『Thumbs.db』殺光光步驟(一):
開啟「Windows 檔案總管」視窗,依序按下「工具(T)」/「資料夾選項(O)」/「檢視」,
勾選『不要快取縮圖』項目,最後按下「確定」,取消Windows快取縮圖的功能。


※NOTE:經過上面的設定,以後具有圖片的資料夾就不會自動產生「Thumbs.db」檔案了,
但是原本就已存在的「Thumbs.db」檔案不會自動消失,必須手工將其刪除。



◆『Thumbs.db』殺光光步驟(二):


開啟記事本!在記事本內輸入以下文字並把檔案另存成 delthumbs.bat 檔案後開啟!

for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z)do del /s /q /f /a:h %%d:\Thumbs.db

2012年12月9日 星期日

讓你的資料欄位可以用時間當預設值

日期可以使用:(CONVERT([char](10),getdate(),(120)))  →  2012-10-05

時間可以使用:(CONVERT([char](8),getdate(),(114)))  →  10:33:07

2012年7月30日 星期一

如何在 Windows 7 中使用系統還原的功能

首先請按一下[開始]按鈕,然後在[電腦]上按一下滑鼠右鍵,然後按一下[內容]。 




然後按一下左上方的[系統保護]。





按一下[系統還原]按鈕。






小提示:
您也可以按一下[開始]按鈕 -> [所有程式] -> [附屬應用程式] -> [系統工具] -> [系統還原],來開啟系統還原程式。


Windows 會自動幫您選擇最合適的還原點,來還原您的電腦,請按一下[復原系統還原]直接還原系統,然後按一下[下一步]。





或是按一下[選擇其他還原點],手動選擇您要的還原點,完成之後按一下[下一步]。





Windows 會確認選擇的還原點資訊,請按一下[完成]。





Windows 會提示在系統還原的過程中式不能中斷的,請按一下[],開始系統還原。








完成之後,系統會自動重新啟動,是不是很方便呢?





如何建立還原點

首先請按一下[開始]按鈕,然後在[電腦]上按一下滑鼠右鍵,然後按一下[內容]。 





然後按一下左上方的[系統保護]。





按一下[建立]按鈕。





Windows 會要求您給這個還原點輸入描述,來協助您方便的識別這個還原點。輸入完成之後,請按一下[建立]。








完成建立系統還原點之後,請按一下[關閉]。





建立系統還原點是不是也很方便呢?現在我們不用擔心系統出現問題的時候,要如何解決了,只要使用系統還原功能,問題就能輕鬆的解決,在這裡提醒大家,雖然 Windows 會自動幫您做還原點,不過還是建議大家自己手動建立還原點,讓您的系統更有保障。

2012年5月21日 星期一

insert into select 及 select into 用法差異

如果今天要寫的目的資料表不存在,可以直接使用 select into 完成,例如
Select Column1, null, 'A', @parameter1, Column2, Column3 Into Table1 From Table2 Where Column1 = 'A' and Column1 = 'B'
如果今天要寫的目的資料表已存在,請使用 insert into select 完成,例如
insert into Table1 Select  Column1, null, 'A', @parameter1, Column2, Column3 From Table2 Where Column1 = 'A' and Column1 = 'B'

2012年5月16日 星期三

如何動態組出 T-SQL 指令

sp_executesql 系統預存程序具備以參數來指定所要執行的 T-SQL,藉由這個特性,可以讓動態組出的 T-SQL 更加安全。


假設我們要動態組出 T-SQL,從 AdventureWorks 資料庫中的 Production.Product 資料表內,找出「顏色」是黑色的產品,可以使用下面的程式碼:


USE AdventureWorks
GO
 
-- 宣告變數
DECLARE @SQLCommand nvarchar(200)
DECLARE @columnList nvarchar(50)
DECLARE @parmColor varchar(10)
 
-- 定義變數
SET @columnList = N'ProductID 產品編號, Color 顏色'
SET @parmColor = 'Black'
 
-- 動態組出 T-SQL
SET @SQLCommand = 'SELECT ' + @columnList + ' FROM Production.Product WHERE Color = @color'
 
-- 執行動態組出的 T-SQL
EXECUTE sp_executesql @SQLCommand, N'@color varchar(10)', @color = @parmColor


執行的部分結果畫面:


從程式碼中,可以看到系統預存程序 sp_executesql 一共需要傳入 3 個參數,分別說明如下:


●第 1 個參數:
所要執行的 T-SQL 陳述式,其內容必須是 Unicode 字串,所以在宣告 @SQLCommand 時,必須指定為 n 開頭的資料型別,在這個範例我是使用 nvarchar 型別。
因為要把英文的欄位名稱改用中文來顯示,所以在定義變數 @columnList 時,要使用前置詞 N 來指定該變數的內容。


●第 2 個參數:
它會包含第 1 個參數中,所有內嵌的參數定義。以本程式碼為例,@color 就是內嵌的參數定義。同樣的,這個參數也必須使用前置詞 N 來指定該變數的內容,且每個參數的定義都是由參數名稱(在該程式碼內,就是 @color)和資料型別(在該程式碼中,就是 varchar(10))所組成。


●第 3 個參數:
指定第 2 個參數內的參數定義的值。以本程式碼為例,第二個參數指定為 @color varchar(10),所以要把先前設定的 @parmColor 的值指派給 @color,這樣才能讓 @parmColor 所代表的 Black 傳遞給 @color。


大家可以跟上一篇分享:「如何動態組出 T-SQL 指令(上)」,比較一下,於設定 @color 顏色變數的值時,上一篇文章在變數值的左右各用了 3 個單引號(')來把 Black 包起來,而在這裡只需要用 1 對單引號就可以了。


如果現在要再加上一個查詢的限制條件,就是「產品編號」要小於 325,就要多宣告並設定一個新變數 @parmPID,同時在系統預存程序 sp_executesql 也要隨之修改:



USE AdventureWorks  
GO  
  
-- 宣告變數  
DECLARE @SQLCommand nvarchar(200)  
DECLARE @columnList nvarchar(50)  
DECLARE @parmColor varchar(10)  
DECLARE @parmPID int  
  
-- 定義變數  
SET @columnList = N'ProductID 產品編號, Color 顏色'  
SET @parmColor = 'Black'  
SET @parmPID = 325  
  
-- 動態組出 T-SQL  
SET @SQLCommand = 'SELECT ' + @columnList + ' FROM Production.Product WHERE Color = @color AND ProductID < @pID'  
  
-- 執行動態組出的 T-SQL  
EXECUTE sp_executesql @SQLCommand, N'@color varchar(10), @pID int',  
                        @color = @parmColor, @pID = @parmPID  



執行結果:


如果不想使用 EXECUTE 或 sp_executesql 來動態組出 T-SQL,可以改用下面的程式碼



USE AdventureWorks  
GO  
  
-- 宣告變數  
DECLARE @parmColor varchar(10)  
DECLARE @parmPID int  
  
-- 定義變數  
SET @parmColor = 'Black'  
SET @parmPID = 325  
  
SELECT ProductID 產品編號, Color 顏色  
FROM Production.Product WHERE Color = @parmColor AND ProductID < @parmPID  

2012年5月11日 星期五

MultiLine TextBox 換行處理


MultiLine TextBox 換行符號: "+Environment.NewLine+"

將textbox值存進資料庫:
string aa = this.TextBox1.Text.Replace(System.Environment.NewLine, "");

即將取代"+Environment.NewLine+"存入資料庫

從資料庫取值到TextBox:

string aa = ds.Tables["dsTableName"].Rows[0][0].ToString();
aa = aa.Replace("
",""+Environment.NewLine+"");
TextBox1.Text = aa;

2012年3月10日 星期六

部署Crystal Report for ASP.NET 2.0


web server要安裝什麼才能正常運作crystal report?

我們在另外一台電腦安裝Web專案時,如果有用到Crystal Report,則必需要在Server端安裝CRRedist2005_x86.msi 及 CRRedist2005_x86_cht.msi 二支檔案。

如果有VS 2005的光碟,則可以選擇自訂安裝來安裝Crystal Report 10

如果沒有光碟,可以使用以下方法完成

1.開啟VS 2005
2.選擇「檔案」-->「新增專案」-->選擇「其他專案類型」-->「安裝和部署」
3.選擇「Web安裝專案」
4.名稱就先取做 "WebSteup1"吧,按下確定產生專案(記一下專案位置)
5.在方案總管選擇專案名稱後按右鍵 -->「屬性」
6.Click「必要條件」,然後打勾 Crystal Report for .NET Framework 2.0
7.重建專案

然後到專案目錄下的Debug\CrystalReports裡,就會看到有二個安裝檔CRRedist2005_x86.msi及CRRedist2005_x86_cht.msi,把這二個檔copy到伺服器裡安裝即可。

測試解法無誤

2012年3月6日 星期二

T-SQL取時間的年月日



經常保存在SQL Server的datetime格式的數據都是帶有時、分、秒等的。但是在頁面讀取的時候,通知只需要年月日,
今天用到的讀取時間年月日的方法如下:
view plaincopy to clipboardprint?
convert(varchar(12),時間列名,111)

如在數據表table1中的列operdate是datetime格式的,需要讀取operdate的年月日的方法就是
view plaincopy to clipboardprint?
select convert(varchar(12),operdate,111) from table1

只抓年、月、日: YEAR(), MONTH(), DAY(); 裡面參數放要抓的時間

-=================================================
--SQL中取得時間的一些技巧
--*********時間精確3毫秒*****************
--================================================ =
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

select DATEDIFF(mm,0,getdate())

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)


--------------當天半夜---------------------------------- ----------
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

--------------最後一天---------------------------------- ----------
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),0)


----------去掉時分秒----------------------------
declare @a datetime
set @a = getdate()
SELECT @a,DATEADD(day,DATEDIFF(day,0,@a),0)

----------顯示星期幾----------------------------
select datename(weekday,getdate())

----------如何取得某個月天數-------------------
declare @m int
set @m=3 --月份
select datediff(day,'2006-'+cast(@m as varchar)+'-15' ,'2006-'+cast(@m+1 as varchar)+'-15')

----------或者使用計算本月的最後一天的腳本,然後用DAY函數區最後一天
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))

----------判斷是否閏年:------------------------
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平

年' else '閏年' end

select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-

01'))
when 28 then '平年' else '閏年' end

----------一個季度多少天------------------------
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))


SELECT CONVERT(VARCHAR(8), DATEADD(m, DATEDIFF(m, '', getdate()), ''), 112) AS [月初]
select CONVERT(VARCHAR(8), DATEADD(m, -3, getdate()), 112) AS [三個月前]

2012年2月14日 星期二

SQL 日期時間轉換 (Convert Date Time to string)


YYYY-MM-DD (2008-06-26):CONVERT(CHAR(10), GETDATE(), 120)
HH:MM:SS:sss (17:24:30):CONVERT(CHAR(8), GETDATE(), 114)
MM DD YYYY (06 26 2008):CONVERT(CHAR(10), GETDATE(), 100)
MM/DD/YYYY (06/26/2008):CONVERT(CHAR(10), GETDATE(), 101)
MM.DD.YYYY (06.26.2008):CONVERT(CHAR(10), GETDATE(), 102)
DD/MM/YYYY (14/03/2011):CONVERT(CHAR(10), GETDATE(), 103)
DD.MM.YYYY (14.03.2011):CONVERT(CHAR(10), GETDATE(), 104)
DD-MM-YYYY (14-03-2011):CONVERT(CHAR(10), GETDATE(), 105)
DD MM YYYY (14 03 2011):CONVERT(CHAR(10), GETDATE(), 106)
YYYYMMDD (20110314):CONVERT(CHAR(8), GETDATE(), 112)
HH:MM:SS:sss (17:24:30:923):CONVERT(CHAR(12), GETDATE(), 114)

2012年1月3日 星期二

ASP呼叫sql server 預存程序參數詳解



語法 Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

返回值 返回 Parameter 對象。

參數

Name 選用 字串 代表Parameter對象名稱。

Type 選用 數值 指定Parameter對象資料類型。
 adDBTimeStamp 135 日期時間數據類型
 adDecimal 14 十進製整數值
 adDouble 5 雙精度小數值
 adError 10 係統錯誤信息
 adGUID 72 全域性唯一識別字(Globally unique identifier)
 adDispath 9 COM/OLE自動對象(Automation Object)
 adInteger 3 4字節有符號整數
 adIUnknown 13 COM/OLE對象
 adLongVarBinary 205 大型2字節值
 adLongVarChar 201 大型字符串值
 adLongVarWChar 203 大型未編碼字符串
 adNumeric 131 十進製整數值
 adSingle 4 單精度浮點小數
 adSmallInt 2 2字節有符號整數
 adTinyInt 16 1字節有符號整數
 adUnsignedBigInt 21 8字節無符號整數
 adUnsignedInt 19 4字節無符號整數
 adUnsignedSmallInt 18 2字節無符號整數
 adUnsignedTinyInt 17 1字節無符號整數
 adUserDefined 132 用戶自定義數據類型
 adVariant 12 OLE對象
 adVarBinary 204 雙字節字符變量值
 adVarChar 200 字符變量值
 advarchar 202 未編碼字符串變量值
 adWchar 130 未編碼字符串

Direction 選用 數值 指定Parameter為輸入或輸出類型。
 adParamInput 1 允許數據輸入至該參數當中
 adParamOutput 2 允許數據輸出至該參數當中
 adParamInputOutput 3 允許數據輸入、輸出至該參數當中
 adparamReturnValue 4 允許從一子程序中返回數據至該參數當中

Size 選用 數值 指定參數值最大長度(以字符或字節數為單位)。

Value 選用 字串或數值 指定Parameter預設值。

說明
使用 CreateParameter 方法可用指定的名稱、類型、方向、大小和值創建新的 Parameter 對象。在參數中傳送的所有值都將寫入相應的 Parameter 屬性。
該方法無法自動將 Parameter 對象追加到 Command 對象的 Parameter 集合,這樣就可以設置附加屬性。如果將 Parameter 對象追加到集合,則 ADO 將使該附加屬性的值生效。
如果在 Type 參數中指定可變長度的數據類型,那麼在將它追加到 Parameters 集合之前必須傳送 Size 參數或者設置 Parameter 對象的 Size 屬性環裨蚪砦蟆?br>