搜尋此網誌

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)