2012年4月24日 星期二

【ASP.NET C#】SqlDataSource InsertCommand 空白 Null 參數設定 日期

SqlDataSource InsertCommand 新增 空白 Null 參數 設定 日期 或其型態,新增資料庫看到是 Null 尚未填寫,而不是空白,在日期欄位就不會發生錯誤

以下適用 SqlDataSource  Insert Update 功能

我有拉了一個 SqlDataSource 進來,而不是自己在Code 建一個Command

(第一種做法) 在Code 裡面 建立 Parameter 類別參數,設定該參數型別及值

SqlDataSource1.InsertCommand = "Insert Into TABLE2(id,tdate) Values('test1',@strDate) ";

Parameter strDate = new Parameter("strDate", System.Data.DbType.DateTime,string.Empty);

SqlDataSource1.InsertParameters.Add(strDate);

SqlDataSource1.Insert();


(第二種做法) 直接在InsertParameters 使用
SqlDataSource1.InsertCommand = "Insert Into TABLE2(id,tdate) Values('test1',@strDate) ";


SqlDataSource1.InsertParameters.Add(new Parameter("strDate", TypeCode.DateTime, string.Empty));

SqlDataSource1.Insert();

(第三種做法) 予許 變數 為 Null 型別 ConvertEmptyStringTo=True
SqlDataSource1.InsertCommand = "Insert Into TABLE2(id,tdate) Values('test1',@strDate) ";

Parameter strDate = new Parameter("strDate", System.Data.DbType.DateTime);

strDate.ConvertEmptyStringToNull = true;

SqlDataSource1.InsertParameters.Add(strDate);

SqlDataSource1.Insert();

(第四種做法)我還沒用過,因為他是建立 sqlcommand 類別

Command.Parameters.Add(new SqlParameter("@EditTime", SqlDbType.DateTime));
Command.Parameters["@EditTime"].IsNullable = true;
if((EditTime == null) || (EditTime == DateTime.MinValue))
Command.Parameters["@EditTime"].Value = DBNull.Value;
else
Command.Parameters["@EditTime"].Value = EditTime;
此做法
參考網址1:http://tw.myblog.yahoo.com/pey-chow/article?mid=8&prev=9&next=7
參考網址2:http://www.programmer-club.com/ShowSameTitleN/aspdotnet/5.html


另外介紹: Parameter 類別 重要參數設定 
一、public Parameter(string name, DbType dbType);

二、public Parameter(string name, DbType dbType, string defaultValue);

因為Parameter 只吃 String(字串)格式 所以我們使用string.Empty使用方式帶入,無法使用('')或toString()方式,因為型別(Date)不一樣,在 Insert它不吃('')及toString(),會出現型態格式錯誤

型別 使用:System.Data.DbType.DateTime 或 TypeCode.DateTime 都可使用




2012年4月16日 星期一

【ASP.NET 3.5】GridView 欄位 檢查

一、GridView1_RowUpdating

if(string.IsNullOrEmpty((string)e.NewValues[0])) {

                sScript = "alert('欄位不得為空值');";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "error", sScript, true);
                e.Cancel = true; //取消更新

}

二、SqlDataSource1_Updating

            string sScript;
            if (String.IsNullOrEmpty(e.Command.Parameters["@NAL_BCP_M"].Value.ToString()))
            {
                sScript = "alert('欄位不得為空值');";
                ScriptManager.RegisterStartupScript(this, this.GetType(), "error", sScript, true);
                e.Cancel = true; //取消更新
            }

【螢火蟲】苗栗 三義 不遠山莊

苗栗 三義 不遠山莊

2012年4月15日 星期日

【VS 2008】快速鍵 功能

Ctrl+E+S 程式碼 空白鍵 (出現一點一點)
Ctrl+E+C 註解 //
Ctrl+E+U 取消 註解 //
Ctrl+X 剪下
Ctrl+V 貼上

Ctrl+E+D 程式碼 自動重新整理 編排


F7 檢視程式碼
F7+Shift 檢視設計頁面
CTRL+L 刪除游標所在的那一行
CTRL+K CTRL+F 將選取範圍的程式碼自動排版

2012年4月10日 星期二

【音樂分享】The Calling - Wherever You Will Go

主唱 The Calling

一、原唱MV

二、網友自做MV

歌詞:

So lately, I've been wonderin
等了好久,我期望了好久
Who will be there to take my place
誰會來到這裡代替我的位置
When I'm gone, you'll need love
當我離開,妳需要愛的時候
To light the shadows on your face
誰妳趕走陰暗,照亮妳的臉龐
If a great wave should fall
如果大浪應該平息
It would fall upon us all
浪會全部跌落在我們的腳下
And between the sand and stone
在沙子與砂礫之間
Could you make it on your own
妳可以自己達成這個目標嗎

[Chorus:]

If I could, then I would
如果我能, 我然後會
I'll go wherever you will go
無論妳去哪我都會跟著妳
Way up high or down low
不論是往上或向下
I'll go wherever you will go
無論到哪我都會跟著妳

And maybe, I'll find out
有可能,我會找到
The way to make it back someday
某天找到讓它回來的方法
To watch you, to guide you
看著妳,守住妳
Through the darkest of your days
在妳生命中灰暗的這些日子裡
If a great wave should fall
如果大浪應該平息
It would fall upon us all
浪會全部跌落在我們的腳下
Well I hope there's someone out there
我希望有某人在那裡
Who can bring me back to you
可以把我帶回到妳身邊

[Chorus]

Runaway with my heart
我的心走了
Runaway with my hope
我的希望走了
Runaway with my love
我的愛也走了
I know now, just quite how
我知道現在,到底是怎麼了
My life and love might still go on
我的生活和愛可能可以繼續
In your heart and your mind
在妳的心中和妳的思緒中
I'll stay with you for all of time
我會為妳一直等待著

[Chorus]

If I could turn back time
如果我可以讓時光倒迴
I'll go wherever you will go
我會跟著妳 無論妳到哪裡
If I could make you mine
如果我可以讓妳變成我一個人的
I'll go wherever you will go
我會跟著妳 無論妳到哪裡

【SQL 教學】 觸發程序 ( Trigger )

新增 觸發程序位置

主要 Tigger 是在 SQL 裡面 自動觸發事件(執行寫的一段程式碼,新增(請看圖片))

我大概寫一下我自己所要用到的用法

AFTER INSERT --程式新增後再新增觸發事件



---2012/04/10 Kares 新增
CREATE TRIGGER fixTable2 ON [dbo].[TABLE1]     ---fixTable2  , 針對TABLE1 資料表觸發
AFTER INSERT ---程式新增後 再比對 觸發事件 INSERT、UPDATE、DELETE 三種事件
NOT FOR REPLICATION ---不覆寫 
AS

DECLARE @YYYMM VARCHAR(5) --自訂變數
SELECT @YYYMM=NAME FROM inserted---程式新增一筆的暫存資料Table / inserted、deleted 

IF EXISTS(SELECT NAME FROM TABLE2 WHERE NAME=@YYYMM) ---判斷Keyword 資料在Table2有沒有建立過
BEGIN
PRINT '資料重復'
RETURN
END
ELSE
INSERT INTO TABLE2(NAME) VALUES(@YYYMM) ---新增一筆資料

如果要看到'資料重復' 這個字,就要到 SQL 裡面 Query Analyzer 新增一筆資料,就會看到自定的文字顯示,在程式端新增,是看不到這個訊息

2012年4月6日 星期五

2012年4月4日 星期三

DataBound 下取 某個欄位的值

DataBound

Label1.Text = ((DataRowView)FormView1.DataItem).Row["NAME"].ToString();

紅色的值可以換掉

2012年4月3日 星期二

FormView的模式轉換方法


FormView1.ChangeMode(FormViewMode.ReadOnly);
FormView1.ChangeMode(FormViewMode.Insert);
FormView1.ChangeMode(FormViewMode.Edit);


轉載:http://blog.blueshop.com.tw/meya886/articles/49773.aspx

2012年3月29日 星期四

ASP.NET 回到上一頁的幾個方法(轉)


ASP.Net 學習之返回上一頁的實現方法(轉)

回上一頁的這個東東在我們做項目的時候一般是用於填寫完表單後確認的時候,有對原來輸入的數據進行修改時用的,或者是因為網站為了方便瀏覽者而有心添加的 一個東東,一般這種功能的實現在ASP.net中都是用一個button的控件來實現的,實現的方法有很多,今天恰好在做項目時碰到要用這個東東,我就把 能實現" 返回上一頁","返回前一頁"的幾種方法總結了一下,供大家學習之用,請多多指教:0)

其實要實現這個功能主要還是要用到javascript

方法一:
 在asp.net的aspx裡面的源代碼中


淺析:這個是用了HTML控件,通過一個onclick的事件,調用了javascript中的一個方法就可以了。這個是最簡單的了,也同樣適用於靜態頁面,ASP頁面等。

方法二:

利用Reponse.write
如果你對ASP有一定的瞭解,那麼對Response.write這個東東就不會陌生了,方法一是直接有HTML頁面中實現,則這個則是在後台環境中實現(這個說法好像不是很規範,呵呵)

Response.write("history.go(-2);)

返回前一頁


這裡為會麼要採用-2的值呢,我個人認為是這樣的:因為在asp.net中的頁面,當你按下一個button後,由於頁面中會實現page.postback的緣故,實際上在這其中是刷新了兩次頁面,我們要的是第一次的,所以就......


方法三

利用Response.Redirect() 或 server.transfer()


在page_load中加入
if(!IsPostBack)   
        ViewState["retu"]=Request.UrlReferrer.ToString();   
    
而在在返回按鈕事件中   
  Response.Redirect(ViewState["retu"].ToString());   
  或Server.Transfer   (ViewState["retu"].ToString());   


淺析:
Request.UrlReferrer可以獲取客戶端上次請求的url的有關信息,我們在使用這個的時候最好對其進行一個判斷

if(ViewState["UrlReferrer"]!=null)

        Response.Redirect(ViewState["UrlReferrer"].ToString();

else
{
Response.write("對不起,當前是最前頁碼「);


這樣才好使一點點喔
}

以下這段來自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html
在使用Request.UrlReferrer時還要注意:
1.  如果上一頁面使用document.location方法導航到當前頁面,Request.UrlReferrer返回空值
2.  如果有A,B兩個頁面,在瀏覽器中直接請求A頁面,在A頁面的中Page_Load事件中導航到B 頁面,則     Request.UrlReferrer返回空。因為 在Page_load事件中頁面還未初始化,所以無法記錄當前頁的信息,導航到b頁面也就 無法獲得上一頁面的信息  
3.  點擊刷新按鈕不會改變Request.UrlReferrer 



方法四:

這個方法估計很少人用,不過我試了一下,也還很不錯喔

在button的onClick事件中輸入

this.RegisterClientScriptBlock("e", "history.go(-2);");

一樣可以 返回到上一頁


方法五

這種方法也比較麻煩,不建議大家使用,這個好像是ASP裡面的。






這裡還要囉嗦一下用Javascript來實現與用Response.redirect()來實現的一點點區別,如果你是想保留你填的數據,那就要用 history.go();這個東東,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.
大致就這些吧,希望大家多多指正:)  

轉載地址:http://www.cnblogs.com/ipusr/articles/619285.html

2012年3月28日 星期三

【Visual Studio版(2008.2010)】若要顯示程式碼行號


若要顯示程式碼行號

  1. 在 [工具] 功能表中選取 [選項]。
  2. 在 [文字編輯器] 資料夾中,選擇 [所有語言] 子資料夾內之 [一般] 選項,將此選項設定為全域性。
    -或-
    在您用來進行程式設計的語言子資料夾內選擇 [一般] 選項。
  3. 在 [ 顯示] 下,選取 [ 行號]。

2012年3月27日 星期二

【SQL】無法變更長度欄位名稱訊息 處理

如果說:sql 沒辦法更改、變更、長度 
請先到以下先設定


工具-選項- 設計師-資料表和資料庫設計工具-取消勾選
防止儲存需要資料表重建的變更

2012年3月26日 星期一

【地球村美語】北部地區-英語-基隆-課表-2012

點圖片可以放大
1
【地球村美語】北部地區-英語-基隆-課表-2012
地址:基隆市愛三路118號5樓(麥當勞對面NET樓上)
電話:(02)2424-6616 (02)2424-6703

2012年3月19日 星期一

【地球村美語】北部地區-英語-中山-課表-2012

點圖放可以放大
【地球村美語】北部地區-英語-中山-課表-2012
地址:台北市中山北路2段2號6樓
電話:02-2563-7500

【地球村美語】北部地區-英語-中山-課表-20120326-20120906_文法課進度表

點圖片可以放大
【地球村美語】北部地區-英語-中山-課表-20120326-20120906_文法課進度表

【地球村美語】北部地區-英語-蘆洲-課表-2012

點圖片可以放大

北部地區-英語-蘆洲-課表-2012
地址:新北市蘆洲區中山一路100號5樓
電話:8282-8106

【地球村美語】北部地區-英語-漢口及站前-課表-2012

點圖片放大
英語-漢口及站前-課表-2012
地址:台北市館前路2號4樓
電話:6617-8111

2012年3月18日 星期日

【ASP.NET 3.5教學】 Repeater_ItemDataBound 設定 DropDownList SelectedValue 值

Repeater 在 ItemDataBound 設定 DropDownList  SelectedValue 值

說明:
假設我用Repeater 跑了15筆資料

在設定Repeater 想放 DropDownList   再去撈 Repeater 資料 ,好讓 SelectedValue 去對應到值,顯示正確的SelectedValue  顯示資料

【有兩種做法】

(第一種):
Repeater 在 ItemDataBound 底下寫


if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
【DropDownList ID名稱】.SelectedValue =
Convert.ToString(DataBinder.Eval(e.Item.DataItem, "XXXX"));
}

(1) = XXXX 裡面要填寫 Repeater  的 Eval 來源資料(欄位名稱):欄位名稱
(2) = 【DropDownList ID名稱】 要填寫  DropDownList 控制項ID名稱

參考連結:
http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.repeater.itemdatabound.aspx
http://www.dotblogs.com.tw/dyco/archive/2009/06/15/8830.aspx


(第二種):
Repeater 在 ItemDataBound 底下寫 

把 Select * from table 撈到DataTable 裡面

然後 SelectedValue  指項 DataTable
【 DropDownList  控制項名稱】.SelectedValue = dt.Rows[0][" XXXX "].ToString();


如果我的話,會選擇 【第一種】做法,就不用再暫存一個DataTable

2012年3月17日 星期六

2012年3月13日 星期二

【地球村美語】北部地區-英語-敦化-課表-2012

點選圖片可以放大
(02)2778-6608 (02)2778-6679
台北市南京東路3段342號1樓 (環雅購物廣場對面)

【地球村美語】北部地區-英語-新莊中正-課表-2012

點選圖片可以放大
(02)2206-5577 (02)2208-2796
新北市新莊區中正路317號

【地球村美語】北部地區-英語-新莊四維-課表-2012

點圖片可以放大
(02)2203-7006 (02)2203-7018
新北市新莊區四維路19號6樓(鴻金寶旁)

【地球村美語】北部地區-英語-三重-課表-2012

點圖片可以放大

(02)2986-1599 (02)2989-5806
新北市三重區正義北路104號(正義國小、三重客運旁)

【地球村美語】北部地區-英語-忠孝-課表-2012

點圖片可以放大



(02)2781-4535 (02)2772-5757
台北市忠孝東路4段169號6樓 
(敦化捷運站旁、神旺飯店對面)




【地球村美語】北部地區-英語-松江-課表-2012



台北市南京東路2段100號1樓
(02)2511-8031 (02)2581-8598

2012年3月10日 星期六

【電影】來訪者/神秘來電


片名:來訪者/神秘來電 
年 份:2011
類 型:懸疑/驚悚
心得:
有點恐怖到家...



2012年3月7日 星期三

【科技產品】 2012/03/08 Apple (蘋果執行長庫克) 重大發表會


2012/03/08 Apple (蘋果執行長庫克) 重大發表會

挑出重要產資訊整理
一、產品名稱:The new iPad    (外界所需的iPad3)
.A5X 雙核處理器
.500萬畫素相機支援1080p錄影
.厚度9.4mm,重量1.4磅(比iPad 2重了一點點)
.GPU顯示晶片是四核心處理器
.有支援4G LTE (上網,APPLE都支援,這是未來趨勢)
.電池時間10小時,使用4G時有9小時。
.Home button 還在
.藍芽4.0
.1G RAM
台灣並未被列入第一波與第二波的名單中
PS_1.iPad3趕出貨 空運搶艙價漲 買盤搶進華航、長榮航
PS_2.iPad 2 售價下調

二、ios 5.1 系統 (有JB的記得別更新到)

三、第三代的Apple TV將在三月十六日上市,價格依然為每部九十九美元

2012年3月6日 星期二

【ASP NET 3.5 教學】System.attribute 類別定義


attribute, 用來為 class, method, parameters 貼上標籤,以便後續的應用.
所有的 attribute class 都要繼承 System.Attribute
1. class Class1Attribute: System.Attribute  
2. {  
3. }  
使用的時候可以省略 Attribute
1.  [Class1]  
2. class Class2  
3. {  
4. }  
打全名當然也是可以
1.  [Class1Attribute]  
2. class Class2  
3. {  
4. }  

ü   System.Reflection
包含的型別可透過檢查 Managed 程式碼中組件、模組、成員、參數和其他實體 (Entity) 的中繼資料 (Metadata),擷取這些項目的相關資訊。 您也可以使用這些型別管理已載入之型別的執行個體 (Instance),例如連結事件或叫用 (Invoke) 方法。
MethodInfo 類別
探索方法的屬性 (Attribute) 並提供方法中繼資料 (Metadata) 的存取。
MemberInfo.GetCustomAttributes 方法 (Type, Boolean)
MemberInfo.GetCustomAttributes (Type, Boolean)
在衍生類別中覆寫時,傳回由 Type 所識別的自訂屬性陣列。

ü   System.Attribut
代表自訂屬性的基底類別。
AttributeUsageAttribute.AllowMultiple 屬性
取得或設定布林值 (Boolean),指出所指定屬性的幾個執行個體能否指定給單一程式項目

[MSDN]System.Reflection 命名空間:

[MSDN]System.Attribute命名空間:
自訂屬性網址:

相關參考網址:

LINQ
let 的用法: let 可用來當 LINQ 中暫存的變數

2012年2月20日 星期一

【MIS】 微軟自動更新 將它關閉,需要網域管理者權限

AD
網域管理者大於本機管理者
網域管理者可要求本機管理者做微軟更新
即時本機管理者是關掉微軟更新,也會強制更新安排

若要把微軟自動更新關閉,需要網域管理者的權限,
然後輸入以下指令

開始
執行
輸入:gpedit.msc /gpcomputer: localhost
找到 項目位置點他按關閉,就可以了