2012-5-31 下午 02-34-16
 
有時候我們會提供頁面給使用者做資料修改,為了怕使用者填寫錯誤,會用下拉式選單(DropdownList),讓使用者填寫,但是也要提示使用者上一次記錄的資料內容。因此將資料庫中的資料與下拉式選單作對應是很常會遇到的事情。 
理論上,資料庫中記錄的資料內容儲存值應該會是越少越好。也就是說,如果以下拉式選單如下面所示,要記錄在資料庫中的應該是ListItem  Value的值。對資料儲存來說比較有利,也可以降低資料庫容量成長。 

炎龍牙 發表在 痞客邦 留言(0) 人氣()

有時候我們會直接塞一大筆資料到一個欄位。
因此在取出時需要做一些分割。並整理資料內容。查了文件,可以利用Split 來完成,也練習了一下,並紀錄下來。
using System;

炎龍牙 發表在 痞客邦 留言(0) 人氣()

有天,突然被一個進修的朋友問到程式迴圈的相關的問題,他邊問,我邊回答的很心虛!
仔細想想迴圈與陣列,算是程式的基礎,而我………對他們卻很陌生。
所以翻出以前學校老師要我們做的測驗題..練習一下!!
題目如下:

炎龍牙 發表在 痞客邦 留言(0) 人氣()

現在說新年快樂好像有點晚@@|||
不過還是要祝福大家,不管是我認識的或是認識我的!!新年快樂,鴻兔大展。
自從從微軟搬了網站過來也沒有寫過什麼東西@@
彷彿網站快廢了...

炎龍牙 發表在 痞客邦 留言(0) 人氣()

2010/10/26 威剛AData記憶體維修保固服務真的很差
記錄下來,給自己一個警惕,提醒自己,永遠永遠永遠..在幫自己與公司採購記憶體時,不要買威剛AData的產品。
一直以來我自己在採買記憶體,都是用創見,理由很簡單,就是保固做得很好,雖然價位高了一點,但是在有異常的時候,只要送回服務據點,就是更換新品給你,可以省去你等待維修的時間與舟車勞頓的辛苦,一個感覺就是爽,畢竟一定是有問題才會送回去修理,哪有人沒事常常回去換記憶體,又不是吃飽沒事情幹!
鮮少用到威剛AData的產品,這次接觸到是因為岳父大人的電腦故障,他的電腦不是我組裝的,但是既然損壞,而我又有一點這方面的基礎認識,當然就是義不容辭的替他作檢測。

炎龍牙 發表在 痞客邦 留言(1) 人氣()


2010/09/15 輕姿飲 SlenDiet 試喝
 今天拿到一個代餐的試用包,上面寫著 輕姿飲 SlenDiet ,其實一直對代餐很感冒,因為吃不飽,味道又有點怪怪的,所以對於這東西我一樣沒有什麼好感,不過由於最近體重直線上升,所以勉強拿來試用一下,畢竟免費,還可以省下一餐,又可以減肥@@(這應該要長期吃才有用)!
對與粉狀的物品我其實在沖泡上一直很不拿手,每次沖泡都會結塊,很意外的用溫水沖泡,這個輕姿飲 SlenDiet 的東西,竟然沒有結塊,順順的在水中化開。
偷偷聞了一下,僅是一股淡淡的香味,有點濃稠,試喝了一口,味道甜甜的,但是感覺吃起來有點類似運動後修復肌肉的蛋白質粉的口感(感覺有點奶)
可能因為水加的不夠,所以喝起來很濃,第二口就有點膩,趕緊去加了一些水跟一些芝麻糊(提升一點香氣與口感)發現這樣搭配挺不錯的,一口可以喝完,不會感覺不舒服與噁心,約莫15分鐘以後,肚子開始出現飽足感,有吃下一個便當的感覺,挺不錯的。所以中午真的就省下一頓啦^^,不知道是不是所有的代餐就是這樣?偶爾一餐我覺得還可以接受,這輕姿飲 SlenDiet應該可以算是我吃過的代餐最好吃的^^。
但是要是都餐餐這樣..我想我一定會崩潰的@@,還是有菜..有肉...最棒阿!!
 
後記:真佩服減肥的女生,可以餐餐吃這東西,意志力真是強大阿。
 
 

炎龍牙 發表在 痞客邦 留言(1) 人氣()


2010/06/17 更換握把確認手感
昨天晚上興沖沖的換了跟車友借用的小彎把,興高采烈的去了車行借了一些工具,把舊的把手(40")拆下來,換上新的把手(44"),不過換了以後怎麼抓怎麼不順手,再加上換的過程,老闆一直說:「你輕一點啦,不然滑牙你就知道了。」
好啦!我是承認我是怪力男,因為很多次我一騎出去..把手被我一拉..就跑掉了位置...,但是沒鎖緊我就沒有安全感咩!感謝車友阿誠後來的協助與幫忙,讓我很快的把車給調整好。
回到家以後,在抬車的過程中,發現車架被削掉了一塊,仔細想想原來是在車行遇到別人的車子倒車削到的,當下以為只有打到踏板,所以沒有在意,但是回家一看問題才知道嚴重性。
一整個心痛阿@@,希望不會對車體結構的穩定性與剛性出現影響。
嗚嗚........
 

炎龍牙 發表在 痞客邦 留言(0) 人氣()



2010/05/31 貓空練習曲

好久沒有紀錄單車生活在網誌上了,其實應該要好好的利用一點時間來記錄工作與生活的點點滴滴。

最近也想開一個版,來記錄我兒子的成長狀況(雖然現在還在媽媽的肚子裡),但是為自己孩子留下一些記錄不是很好嗎?

言歸正傳,許久沒有練車(因為老婆大人現在已經進入備戰狀態),昨天經過老婆大人的恩准(原因是..我快要跟老婆一樣擁有夫妻肚了!)

天空也放晴(明明是晚上)...於是整理了一下公路車,就往貓空出發,沿路自我感覺良好..因為腳不酸,人不喘,心裡很踏實..

接近政大後門,按下計時,就往貓空衝...............衝過隧道後.....心跳爆了...呼吸快要停滯....張大著口不停的狂咬空氣..希望能多吞下一些!!

心中小惡魔蠢蠢欲動的說:『停下來吧!休息吧!』。於是踩踏慢了下來,車速也慢了下來,心中不斷的狂罵,沒事騎什麼山路。

在此時見到史丹利迅速的下滑,為了避免被再次往上爬的史丹利追到,我絲毫不敢停下踩踏,且不停回頭偷看是否有被追上,

依舊呼吸快要停滯....張大著口不停的狂咬空氣....就這樣拼上了貓空>"<................

  

2010/05/30 貓空




完成計時成績:22 33 秒

 


炎龍牙 發表在 痞客邦 留言(0) 人氣()


轉到頭都暈了的資料型態轉換!


這天,為了讓SQL與程式的功能作區分,畢竟資料庫負責處理資料,而程式是負責運算,為了讓雙方回歸到基本的運作模式,因此嘗試著重新編譯程式,卻發現之前資料庫的語法編譯之後雖然造成程式效能不彰,但卻讓程式簡單的幾句就達到我要的結果(簡單的說..就是資料庫我讓他進行不少的運算,最後再將接近結果的資料表丟給程式做最後的運算跟寫入資料庫。)


仔細想想,乾脆就都用資料庫就好啦(其實是辦的到的!)但這樣跟原本設定要給USER隨時上傳資料的意義就消失了。(反正我是程式新手..就用不同的狀況讓我更瞭解C#語法吧!)


言歸正傳,這次遇到的問題是當我從資料庫中提取一出Decimal的資料,但轉入到程式中出現了以下錯誤訊息:將字串轉換為DataTime或是需要的型別是Int32…與輸入的字串格式不正確…“,大冒險就開始了,瘋狂的查詢與測試後(就是要用程式解決啦!!)不過還是沒解決資料載入時的資料型態問題>”<


例如:


DB Data1 : 60.000000 à 60


DB Data2 : 22.000000 à 22



從資料庫取出到DataTable中變成字串,簡單看起來應該是我的資料來源被當成String,但是我要他是Int32


因此我做了轉成整數的動作


String ABC = 123.000;


int PHAMTF = new int();


PHAMTF = int.Parse(PHAMT);


但是,還是出現錯誤訊息需要的型別是Int32”,我想主要的原因應該是我的資料是有小數點的,翻閱文件後,我將語法改為:


首先先增加using System.Globalization 命名空間


System.Globalization 命名空間 (Namespace) 包含定義文化特性相關資訊的類別,包括語言、國家/地區、使用中的曆法、日期、貨幣和數字格式模式,以及字串的排序順序。


 


String ABC = 123.000;


int PHAMTF = new int();


PHAMTF = int.Parse(PHAMT, NumberStyles.AllowDecimalPoint);


輸出結果:123


 


詳細說明請參閱TechNet


Int32.Parse 方法 (String, NumberStyles)


http://msdn.microsoft.com/zh-tw/library/c09yxbyt.aspx


Convert 類別(將基底資料型別轉換為其他基底資料型別。)


http://msdn.microsoft.com/zh-tw/library/system.convert(v=VS.80).aspx


結果就只取出整數出來,當然程式就跑過啦!,但是萬一要是哪天我的資料來源值是真的要用到Decimal的時候…..我該怎麼辦咧!!

 


PS:改寫途中,其中一度想放棄,乾脆用資料庫語法CAST CONVERT (Transact-SQL)來直接修正欄位值,將欄位值直接改成Int ,這樣我接資料就沒問題啦……


---範例語法(複製後貼上SSMS執行即可)----


DECLARE @myval decimal (5, 2)


SET @myval = 193.57


SELECT CAST(@myval AS Int) AS Myval


-- Or, using CONVERT


SELECT CONVERT(int, @myval) AS Myval


改天在來好好寫一篇關於CAST CONVERT (Transact-SQL)


詳細說明請參閱TechNethttp://msdn.microsoft.com/zh-tw/library/ms187928.aspx


 


後記:仔細想想,應該是我對於程式中,資料的來源、承接、型態、結構、方法等..所有東西都不熟悉所導致的吧@@,以致於我根本不知道要修正哪裡的錯誤來解決問題都是用猜的跟用矇的……

炎龍牙 發表在 痞客邦 留言(0) 人氣()



給我排排站好..其餘免談@@|||


由於資料有時候並不會有流水序號可供判定資料的位置,因此就會需要讓他產生流水編號,產生的方法有以下幾種函數,排名函數會傳回資料分割中每個資料列各一個次序值。根據所用的函數而定,有些資料列可能會收到與其他資料列相同的值。排名函數不具決定性。


ROW_NUMBER()  從頭排到尾


RANK()  依據相同的值給予同一編號,但是下次給號會跳號(常用於排名次)


DENSE_RANK() 依據相同的值給予同一編號,但是下次給號不會跳號


NTILE() 依據給予的引數,給予資料列散發到指定數目的群組中,對於每個資料列,NTILE 都會傳回資料列所屬群組的號碼。


 


詳細說明請參閱TechNet


https://technet.microsoft.com/zh-tw/library/ms189798.aspx


 


------以下是範例直接複製到SSMS執行即可-------


--DECLARE @Table,宣告一個變數資料表


DECLARE  @Employee TABLE 


(    EmpId Varchar(10),


    EmpName Varchar(25),


    EmpSalary Numeric(12,0)


)


--Insert sample records,寫入幾筆樣本資料


INSERT INTO @Employee VALUES( 'Emp202', 'Ravi', 2000000)


INSERT INTO @Employee VALUES( 'Emp198', 'Shekar', 678000)


INSERT INTO @Employee VALUES( 'Emp234', 'Karim', 805000)


INSERT INTO @Employee VALUES( 'Emp234', 'Karim', 879000)


INSERT INTO @Employee VALUES( 'Emp234', 'Karim', 2350000)


INSERT INTO @Employee VALUES( 'Emp184', 'John', 975000)


INSERT INTO @Employee VALUES( 'Emp151', 'Suresh', 689000)


INSERT INTO @Employee VALUES( 'Emp151', 'Suresh', 879000)


 


--Query the table,執行語法!


SELECT


ROW_NUMBER() OVER ( ORDER BY EmpId DESC ) AS 依照EmpId排序,


 EmpId, EmpName, EmpSalary


FROM @Employee


 


SELECT


ROW_NUMBER() OVER ( PARTITION BY EmpName ORDER BY EmpId DESC ) AS 依照EmpName群組後排序,


 EmpId, EmpName, EmpSalary


FROM @Employee


 


SELECT


RANK() OVER(ORDER BY EmpId) AS 跳號 ,


 EmpId, EmpName, EmpSalary


FROM @Employee


 


SELECT


DENSE_RANK() OVER(ORDER BY EmpId) AS 不會跳號 ,


 EmpId, EmpName, EmpSalary


FROM @Employee


 


SELECT


NTILE(3) OVER(ORDER BY EmpId) AS 每三列編一號 ,


 EmpId, EmpName, EmpSalary


FROM @Employee


 



PS:很常用的東西但是卻也很常忘記>”<



 



炎龍牙 發表在 痞客邦 留言(0) 人氣()


不負責任講座開課嚕!!


今天嘗試安裝SQL 2008 其實公司有金鑰但是卻沒有使用,因此今天打算來安裝一套作為以後的資料庫,雖然我更想安裝SQL 2008 R2,但是一切都要錢阿……


嘗試安裝以後更改路徑,例如想把“C:\Program Files\Microsoft SQL Server” 修改為“D:\Program Files\Microsoft SQL Server”


出現錯誤訊息,安裝失敗,錯誤的詳細資訊是:


未指定 INSTANCESHAREDDIR 命令列值。如果指定了 INSTANCESHAREDWOWDIR 值,就必須指定這個值。


上網查詢了一下,大致解決方法如下:


首先:不修改路徑,使用默認方式安裝,最後在確認安裝時會顯示ConfigurationFile.ini檔的路徑,到這個路徑下面將安裝配置檔複製到其他路徑,例如D:\,然後退出安裝


其次:使用記事本打開這個檔,根據實際需求將“C:\Program Files\Microsoft SQL Server” 查找替換為“D:\Program Files\Microsoft SQL Server”後存檔,


最後:在命令行轉到安裝目錄,開始安裝,如果是Vista,記得使用管理員許可權運行命令行,輸入以下指令: setup.exe /action=Install /configurationfile=D:\ConfigurationFile.ini


這時執行就會按照之前設定的路徑下去執行  


另一方法:


插入光碟後不要用Autorun的安裝,使用CMD命令安裝!進安裝光碟的根目錄,輸入命令:
setup.exe /INSTALLSHAREDDIR="D:\\Program Files\\Microsoft SQL Server\\"/INSTALLSHAREDWOWDIR="D:\\Program Files (x86)\\Microsoft SQL Server\\"


安裝即可,其中INSTALLSHAREDDIRx64部件安裝的路徑,INSTALLSHAREDWOWDIRx32部件安裝的路徑。


以上是網路提供的方法...改天來試看看!!


PS:昨天測試了一下,確實可以利用以上方式進行安裝...但是我還是失敗阿!(出現其他種類的錯誤)


(也發現要一邊寫記錄一邊處理錯誤...真的很困難>"<|||,驚覺要留下記錄或是圖片時..都已經來不及啦!)


 


參考來源:


http://loveseeds.blog.hexun.com/44841928_d.html

炎龍牙 發表在 痞客邦 留言(0) 人氣()

為了最近測試資料的成長,所以順手將這些資料作紀錄,畢竟資料庫的管理,常使用到這些查詢。
以後就可以直接引用。
 
查詢的過程中,出現以下的錯誤訊息!

訊息3032,層級16,狀態2,行1


這個陳述式不支援一或多個選項(no_log)。請查閱文件集,了解支援的選項。


意外發現原來SQL 2008 取消了部分的查詢語法與功能,如果如MSDN文件所說的,也就是以後要截斷交易記錄,必須要利用其他方式,或是利用正規的語法備份。雖然不方便,但是依照正常的邏輯推論,的確是應該這樣沒錯!


 
 

--查詢資料庫使用空間


USE [DB_NAME]
SET NOCOUNT ON 
DECLARE @tDBSize TABLE 
(DBName SYSNAME DEFAULT([DB_NAME]()), 
 Fileid INT, FileGroup INT, TotalExtents INT, 
 UsedExtents INT, Name SYSNAME, FileName NVARCHAR(4000))  
 
DECLARE @tLogSize TABLE 
(DBName sysname, logsize float, used float, status int) 
 
INSERT @tDBSize(Fileid,FileGroup,TotalExtents,UsedExtents,Name,FileName) 
EXEC ('DBCC showfilestats') 
 
INSERT INTO @tLogSize 
EXECUTE ('DBCC SQLPERF(LOGSPACE)') 
 
SELECT D.DBName N'資料庫',D.Name N'資料檔案', 
 TotalExtents*64.0/1024 N'資料檔案使用硬碟空間(MB)', 
 UsedExtents*64.0/1024 N'資料實際使用空間(MB)', 
 logsize N'交易記錄檔整體使用的硬碟空間(MB)', 
 (logsize*used/100) N'交易記錄檔整體的實際使用(MB)' 
FROM @tLogSize L INNER JOIN @tDBSize D 
 ON L.DBName=D.DBName 
 
--截斷交易記錄檔
 /*
當資料庫使用簡單復原模式時,便會自動截斷交易記錄。
如果您必須從資料庫中移除記錄備份鏈結,請切換到簡單復原模式。
*/
--01 將資料庫[DB_NAME] 切換為「簡單復原模式」,便會自動截斷交易記錄。
ALTER DATABASE [DB_NAME]
SET RECOVERY SIMPLE
GO
--02 若決定要備份交易記錄檔(*.ldf),再將資料庫[DB_NAME] 切換回「完整復原模式」
ALTER DATABASE [DB_NAME]
SET RECOVERY FULL
GO

 
--使用BACKUP LOG ... WITH NO_LOG(SQL 2008不支援)
BACKUP LOG [DB_NAME]
WITH NO_LOG
--或是,使用BACKUP LOG ... WITH TRUNCATE_ONLY(SQL 2008不支援)
BACKUP LOG [DB_NAME]
WITH TRUNCATE_ONLY
 
--顯示資料庫檔案,找出交易記錄檔的邏輯檔名
EXEC sp_helpdb '[DB_NAME]'    --[DB_NAME]:資料庫名稱
--Medical_Data (DB NAME)
--Medical_Log (DB Log NAME)
--()壓縮交易記錄檔
DBCC SHRINKFILE(Medical_Log , 1024)    --Medical_Logldf檔的邏輯檔名,用EXEC sp_helpdb可以找出

 


 


參考資料:


德瑞克:SQL Server 學習筆記
交易記錄檔已滿、爆掉;截斷交易記錄檔。(The transaction log for database 'DB1' is full. Transaction Log Truncation


 


管理交易記錄
http://technet.microsoft.com/zh-tw/library/ms345382.aspx


 
 
SQL Server 2008 中已停止的 Database Engine 功能
http://msdn.microsoft.com/zh-tw/library/ms144262.aspx
 
 
SQL Server 2008 R2 中已被取代的 Database Engine 功能
http://msdn.microsoft.com/zh-tw/library/ms143729.aspx
 
 

簡單復原模式下的備份
http://technet.microsoft.com/zh-tw/library/ms191164.aspx


 
 
交易記錄截斷
http://technet.microsoft.com/zh-tw/library/ms189085.aspx
 
 
如何避免 SQL Server 資料庫的交易記錄檔超出預期大小
http://support.microsoft.com/kb/873235/zh-tw
 

炎龍牙 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。