克の記事本
2013年7月1日
ajax - 在.net framework 2.0 使用 ajax
在 framework2.0 使用ajax ,要安裝 ASP.NET AJAX Extensions,
並在web.config設定,在返回的結果中,不需要帶"d",3.5以上才需要"d".
ASP.NET 2.0 AJAX Extensions 1.0 :
http://www.microsoft.com/en-us/download/details.aspx?id=883
web.config :
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
2013年6月27日
C# - 算中文字筆劃(繁/簡)
demo.cs
using Microsoft.International.Converters.PinYinConverter;
protected void Page_Load(object sender, EventArgs e)
{
getTraditionalStrokeNumber();//計算繁體字
Response.Write("<br/>");
getSimplifiedStrokeNumber();//計算簡體字
//也可以算繁體字,但有些字的筆劃算法會不一樣,例如草字頭的字
}
private void getTraditionalStrokeNumber()
{
StringBuilder sb = new StringBuilder();
WordCode wc = new WordCode();
foreach (char c in "克的筆記本")
{
sb.AppendFormat("{0}{1}\r\n", c, wc.GetWordCnt(c.ToString()));
}
Response.Write(sb.ToString());
}
private void getSimplifiedStrokeNumber()
{
StringBuilder sb = new StringBuilder();
foreach (char c in "克的笔记本")
{
sb.AppendFormat("{0}{1}\r\n", c, ChineseChar.GetStrokeNumber(c));
}
Response.Write(sb.ToString());
}
===============================
結果:
克7 的8 筆12 記10 本5
克7 的8 笔10 记5 本5
下載: 繁體物件 簡體物件
using Microsoft.International.Converters.PinYinConverter;
protected void Page_Load(object sender, EventArgs e)
{
getTraditionalStrokeNumber();//計算繁體字
Response.Write("<br/>");
getSimplifiedStrokeNumber();//計算簡體字
//也可以算繁體字,但有些字的筆劃算法會不一樣,例如草字頭的字
}
private void getTraditionalStrokeNumber()
{
StringBuilder sb = new StringBuilder();
WordCode wc = new WordCode();
foreach (char c in "克的筆記本")
{
sb.AppendFormat("{0}{1}\r\n", c, wc.GetWordCnt(c.ToString()));
}
Response.Write(sb.ToString());
}
private void getSimplifiedStrokeNumber()
{
StringBuilder sb = new StringBuilder();
foreach (char c in "克的笔记本")
{
sb.AppendFormat("{0}{1}\r\n", c, ChineseChar.GetStrokeNumber(c));
}
Response.Write(sb.ToString());
}
===============================
結果:
克7 的8 筆12 記10 本5
克7 的8 笔10 记5 本5
下載: 繁體物件 簡體物件
2013年6月24日
SQL - 檢視(view),暫存資料表(#Table),資料表變數(@Table),衍生資料表(子查詢),一般資料表(CTE)
要用哪一種,取決於使用這些方法的頻率、時間長短、資料筆數多寡
1.檢視(view):
http://msdn.microsoft.com/zh-tw/library/ms187956.aspx
a.生命週期 - 存在於資料庫中,可提供給所有批次或預存程序反覆使用.
b.特 點 - 如僅需使用一次,則較不適合.
c.使用時機 - 用來分解大型查詢,以便用更容易閱讀的方式加以查詢.
===============================================
2.暫存資料表(#Table):
http://msdn.microsoft.com/zh-tw/library/ms174979(v=sql.105).aspx#languageReferenceRemarksToggle
a.生命週期 - 存在多個批次或預存程序裡.
b.特 點 - 存在於"tempdb".
可建立索引(index).
當session 關閉時,#Table 將會自動DROP,但最好手動DROP.
c.使用時機 - 適合用在資料量大的查詢,有複雜計算時.
例:
name VARCHAR(30)
INSERT INTO ...
DROP TABLE #TempTable
或
SELECT * INTO #TempTable
FROM table
WHERE ...
DROP TABLE #TempTable
===============================================
3.資料表變數(@Table):
http://msdn.microsoft.com/zh-tw/library/ms188927.aspx#code-snippet-3
a.生命週期 - 存在單次批次期間或預存程序裡.
b.特 點 - 先在記憶體運算.
c.使用時機 - 適合用在資料量少,有複雜計算時.
例:
DECLARE @TempTable TABLE (
id INT,
name VARCHAR(30)
1.檢視(view):
http://msdn.microsoft.com/zh-tw/library/ms187956.aspx
a.生命週期 - 存在於資料庫中,可提供給所有批次或預存程序反覆使用.
b.特 點 - 如僅需使用一次,則較不適合.
c.使用時機 - 用來分解大型查詢,以便用更容易閱讀的方式加以查詢.
===============================================
2.暫存資料表(#Table):
http://msdn.microsoft.com/zh-tw/library/ms174979(v=sql.105).aspx#languageReferenceRemarksToggle
a.生命週期 - 存在多個批次或預存程序裡.
b.特 點 - 存在於"tempdb".
可建立索引(index).
當session 關閉時,#Table 將會自動DROP,但最好手動DROP.
c.使用時機 - 適合用在資料量大的查詢,有複雜計算時.
例:
CREATE TABLE #TempTable (id INT,
name VARCHAR(30)
)
INSERT INTO ...
DROP TABLE #TempTable
或
SELECT * INTO #TempTable
FROM table
WHERE ...
DROP TABLE #TempTable
===============================================
3.資料表變數(@Table):
http://msdn.microsoft.com/zh-tw/library/ms188927.aspx#code-snippet-3
a.生命週期 - 存在單次批次期間或預存程序裡.
b.特 點 - 先在記憶體運算.
c.使用時機 - 適合用在資料量少,有複雜計算時.
例:
DECLARE @TempTable TABLE (
id INT,
name VARCHAR(30)
)
INSERT INTO ...
SELECT name
FROM table AS A
INNER JOIN @TempTable B
ON A.id=B.id
===============================================
4.衍生資料表(子查詢):
a.生命週期 - 僅限於查詢期間.
b.特 點 - 如需使用多次,可能會使得查詢更難閱讀及維護.
c.使用時機 - 同樣的查詢僅使用一次時.
例:
SELECT id
FROM tableA
WHERE name=(SELECT name
FROM tableB
WHERE ... )
===============================================
5.一般資料表(CTE):
http://msdn.microsoft.com/zh-tw/library/ms175972.aspx
a.生命週期 - 僅限於查詢期間
b.特 點 - 可以減少重覆計算所耗的I/O、CPU和執行時間.
可以自我參考(遞迴),可以在同一查詢中被參考多次.
需緊接在下個查詢中才能使用.
c.使用時機 - 同樣的查詢使用多次時.
例:
;WITH TableCTE(id,dataCount) AS(
SELECT id,COUNT(id)
FROM table
GROUP BY ...
)
SELECT name
FROM table AS A
INNER JOIN TableCTE B
ON A.id=B.id
===============================================
FROM table AS A
INNER JOIN @TempTable B
ON A.id=B.id
===============================================
4.衍生資料表(子查詢):
a.生命週期 - 僅限於查詢期間.
b.特 點 - 如需使用多次,可能會使得查詢更難閱讀及維護.
c.使用時機 - 同樣的查詢僅使用一次時.
例:
SELECT id
FROM tableA
WHERE name=(SELECT name
FROM tableB
WHERE ... )
===============================================
5.一般資料表(CTE):
http://msdn.microsoft.com/zh-tw/library/ms175972.aspx
a.生命週期 - 僅限於查詢期間
b.特 點 - 可以減少重覆計算所耗的I/O、CPU和執行時間.
可以自我參考(遞迴),可以在同一查詢中被參考多次.
需緊接在下個查詢中才能使用.
c.使用時機 - 同樣的查詢使用多次時.
例:
;WITH TableCTE(id,dataCount) AS(
SELECT id,COUNT(id)
FROM table
GROUP BY ...
)
SELECT name
FROM table AS A
INNER JOIN TableCTE B
ON A.id=B.id
===============================================
訂閱:
文章 (Atom)