http://code.google.com/intl/zh-TW/apis/ajaxlibs/
Develop Guide
http://code.google.com/intl/zh-TW/apis/ajaxlibs/documentation/index.html
以下內容大部分取自MSDN
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.cht/fxref_mscorlib/html/8cf32466-55b9-e0bf-37eb-39af84aa3021.htm
IEnumerator 是所有非泛型列舉值的基底介面。
任何實做此類別的物件才能使用foreach來列舉,列舉值可以用來讀取集合中的資料,但是無法用來修改基礎集合。
列舉可以想像成是間隔與間隔中間的指示牌,利用指示牌來指出物件串列中,目前所在(Current)的是哪個物件,並可以往下前進(MoveNext)。任何物件都必須實做IEnumerator和IEnumerable的兩個介面,其中實做IEnumerable是物件序列,必須實做GetEnumerator()回傳實做IEnumerator的物件來進行列舉。
列舉值沒有集合的獨佔存取權,因此,列舉一個集合在本質上並不是執行緒安全的程序。即使集合經過同步化,其他的執行緒仍可修改該集合,使列舉值擲回例外狀況。若要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。
本文引用自 ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.cht/fxref_mscorlib/html/bc3d7d70-886c-6572-18cd-3e82f6aeeabe.htm
Attribute 類別會將預先定義的系統資訊或使用者定義的自訂資訊,與目標項目產生關聯。目標項目可為組件 (Assembly)、類別、建構函式 (Constructor)、委派 (Delegate)、列舉、事件、欄位、介面、方法、可移植執行檔案模組、參數、屬性 (Property)、傳回值、結構或其他屬性 (Attribute)。
屬性提供的資訊也稱為中繼資料 (Metadata)。應用程式可在執行階段檢查中繼資料,來控制程式處理資料的方式,也可以在執行階段前,利用外部工具,來控制應用程式如何對其本身進行處理或維護(補充1)。例如,.NET Framework 可預先定義並使用屬性型別來控制執行階段行為,部分程式語言則可使用屬性 (Attribute) 型別,來表示 .NET Framework 一般型別系統未直接支援的語言功能。
所有屬性 (Attribute) 型別都是直接或間接衍生自 Attribute 類別。屬性 (Attribute) 可以套用至任何目標項目;多個屬性 (Attribute) 可以套用至同一個目標項目;衍生自目標項目的項目可以繼承屬性 (Attribute)。請使用 AttributeTargets 類別,指定要套用屬性的目標項目。
Attribute 類別包含便於擷取及測試自訂屬性 (Attribute) 的方法。如需屬性用法的詳細資訊,請參閱使用屬性擴充中繼資料(MSDN)。
補充1: 為什麼可以達成這樣,可參考範例中建立屬性的方法。每個套用的屬性在使用前都會經過屬性物件的包裹再執行原程式,這包裹的過程可以對目標物件進行處理。
# 所有的資料繫結運算式都必須包含在 <%# 和 %> 字元之間。
# 資料繫結運算式使用 Eval 和 Bind
方法將資料繫結至控制項,並將變更送回資料庫。Eval 方法是一種靜態 (唯讀)
方法,會取得資料欄位的值,並且將其以字串的形式送回。Bind
方法支援讀/寫功能,並具有擷取資料繫結控制項之值,以及將所有變更都送回資料庫的能力。
<asp:GridView ID="gvResult2" runat="server" CssClass="table-view"
DataKeyNames="MetadataId" DataSourceID="ObjectDataSource1">
<RowStyle CssClass="row-item" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="序號">
<ItemTemplate>
<%# Container.DataItemIndex + 1 %></ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle CssClass="row-foot" />
<AlternatingRowStyle CssClass="row-alter" />
</asp:GridView>
時間字串的資料如下:
2008/10/21 下午 06:01:39
現在要透過c#將資料寫回oracle內,若直接使用
TO_DATE('2008/10/21 下午 06:01:39', 'yyyy-mm-dd hh:mi:ss')
會造成 ORA-01858: a non-numeric character was found where a numeric was expected
解法:
1.先用將原始字串轉換
Convert.ToDateTime("2008/10/21 下午 06:01:39").ToString("u")
u是 Universal sortable (invariant) 格式,輸出結果像是 2006-04-17 21:22:48Z
(ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.cht/fxref_mscorlib/html/35b48850-3558-6011-1368-facb5f7986bd.htm#seeAlsoToggle)
字尾有多個Z,用Substring砍掉
Convert.ToDateTime(payDate).ToString("u").Substring(0, 19)
2. 使用TO_DATE寫回Date欄位
TO_DATE('<將轉換過的字串代入>', 'yyyy-mm-dd hh24:mi:ss')
Sample:
string payTool = (node.SelectSingleNode(".//PayTool")).InnerText;
string paySerial = (node.SelectSingleNode(".//PaySerial")).InnerText;
string payResult = (node.SelectSingleNode(".//PayResult")).InnerText;
string payDate = (node.SelectSingleNode(".//AuthorizeDateTime")).InnerText;
string sql = string.Format("UPDATE ORDERS SET HOWTOPAY = '{0}', PAYRESULT = '{1}', PAYDATE = TO_DATE('{2}','yyyy-mm-dd hh24:mi:ss'), STATUS = '{3}' WHERE ID = '{4}'", payTool, payResult, Convert.ToDateTime(payDate).ToString("u").Substring(0, 19), "1", paySerial);
在<system.web>中加上以下參數
<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>
比較完整的範例
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>