2009年10月30日 星期五

取某個字元之前的字串

假設有個字串是:0.10#p1
我現在想要取得的是#字符號之前的0.10
可能一開始就會想到使用 substring( ) 這函式。
但是要使用這個函式,必須先知道 # 字符號所在的索引位置,
並推算出在此之前的字串長度是多少,才能正確取得 # 字符號之前的字串。
雖然不難,但卻顯得有點令人覺得繁瑣。

剛好,是懶惰救了我。
推薦一個不錯的寫法:

string str="0.10#p1";
str.split('#')[0];    //---- >  這一行就會回傳 # 字符號之前的字串  0.10
str.split('#')[1];    //----->  延伸一下,這一行,就會回傳# 字符號之後的字串 p1

他的原理,是先透過 split 函式,將 # 字符號當作是切割點,將字串轉換成陣列,而[0]指的,則是陣列的第一個元素,也正好是我們所需要的結果。如此一來,程式就簡潔許多了。

2009年10月27日 星期二

ASP.Net 產生 XML 格式

轉載 ASP.Net 產生 XML 的方法。


using System.Xml;



XmlDocument ObjXML = new XmlDocument();//建立 XMLDOCUMENT 物件

XmlElement root = ObjXML.CreateElement("people");//建立 根節點 物件
ObjXML.AppendChild(root);//插入 根節點物件到 XMLDOCUMENT 物件
XmlElement user = ObjXML.CreateElement("user");//建立子節點物件
root.AppendChild(user);//插入 子節點物件 到 根節點物件

user.SetAttribute("name", null, "paladin");//設定子節點屬性
user.SetAttribute("cname", null, "李志堅");//設定子節點屬性

XmlDeclaration xmldecl;
xmldecl = ObjXML.CreateXmlDeclaration("1.0", null, null);
xmldecl.Encoding = "UTF-8";
ObjXML.InsertBefore(xmldecl, root);
string myxml = ObjXML.InnerXml.ToString();//插入XML類型標頭
Response.Write(myxml);//輸出 XML 文件格式




執行上面這段程式,就可以產生以下結果:



< ?xml version="1.0" encoding="UTF-8"? >
< people >
< user name="paladin" cname="李志堅" / >
< /people >


透過jQuery變更奇偶欄位的樣式

要讓 Table 裡的每列資料可以根據奇偶之分來採用不同的顏色區分,如果透過 jQuery來實作,似乎比較簡單哩。

首先,先建立一個測試用的 Table。其內容如下:




< Table id="tb" border="1" style="border-collapse: collapse;" >
< TR class="gvh" >
< TH> School < /TH >< TH > Location </TH>
< /TR>
< TR>
< TD> NTU </TD>< TD > 台北 </TD>
< /TR>
< TR>
< TD> NTHU </TD>< TD > 新竹 </TD>
< /TR>
< TR>
< TD> NCTU </TD >< TD > 新竹 </TD>
< /TR>
< TR>
< TD> NCKU </TD >< TD > 台南 </TD>
< /TR>
< /TABLE>



接著,將我們會用到的 style 設定寫好:



< style >
.gvh
{
background-color: Blue;
font-weight: bold;
color: Red;
font-size: 14px;
text-align: center;
}
.gvr
{
background-color: #EFEFEF;
font-size: 14px;
}
.gva
{
background-color: #FFFFFF;
font-size: 14px;
}

< /style >


關鍵的 jQuery 控制,則如下所示:



< script >
$(function() {
$("#tb tr[class!=gvh]:even").addClass("gva");
$("#tb tr[class!=gvh]:odd").addClass("gvr");
});
< /script >



由於我們一開始在原先的 Table 的第一列就把他的 TR 樣式設為 "gvh" ,所以在 jQuery 的程式碼裡,要避免去覆蓋已經設為 Header 的樣式,所以會透過屬性設定的過濾條件濾掉 class=gvh ,這樣才會讓奇偶樣式的效果正確呈現出來。


2009年10月7日 星期三

four-part notation(naming) in SQL

介紹在 SQL 所提到的一個名詞 four-part notation(naming) 。

當你有好幾台 SQL Server 時,每台SQL Server 都各自有各自的資料庫。人怕撞衫而 SQL Server 則怕撞庫。為了存取資料庫時避免發生混淆不清的現象,則定出了 four-part notation,這四個部份分別是:

For SQL Server 2000
server.database.owner.object

For SQL Server 2005
server.database.schema.object

如果你的北風資料庫是放在 paladin_SQL 上,要存取Sales 資料表,則採用 four-part notation 時,就會寫成:
paladin_SQL.NorthWind.dbo.Sales

另外,如果你今天是在 amy_SQL 上想要存取 paladin_SQL 資料,

select * from paladin_SQL.NorthWind.dbo.Sales

這樣子的作法理論上是對的,但別忘了,要跨 DB Server 去存取資料,要記得先設定 link servers,才能順利完成。