十一月 24

有寫過C#的朋友大概都知道,要在C#中輸入一段有斷行的字串或SQL時

都會使用「@」這個好用的符號。好處就是可以直接斷行

例如:
string test = @"
select * from tb
where c1 = 123"

但是在VB.NET就要很鱉腳用 「 & _ 」來斷行
例如:
dim test as string
test = "select * from tb" & _
"where c1 = 123"

如果行數一多,那可真是累死人不償命又無聊的工程
某天在黑暗執行緒的某一篇文章挖到了寶

使用VB.NET 2008內建的XML嵌入語法,來達成模擬C#的「@」
直接看下面的例子

        Dim JS As String = <s><![CDATA[
                <script type="text/javascript">
                jQuery(function ($) {
                    $('#@txtbox.ClientID@').datepicker({
                    rangeSelect: true,
                    firstDay: 1,
                    changeMonth: true,
                    changeYear: true,
                    showOn: 'both',
                    buttonImageOnly: true,
                    buttonImage: '@Context.Request.ApplicationPath@/Picture/calendar.gif'
                    });
                });
                </script>
        ]]></s>.Value.Replace(vbLf, vbCrLf)

跟據Ark網友的補充,由於預設的換行是vbLf,所以後面我加了Replace(vbLf, vbCrLf)
來把換行符號變成vbCrLf

那如果字串裡面有變數怎麼辦?
先把變數用@包起來,例如:@txtbox.ClientID@
之後再用Replace去把變數塞進去,例如:JS = JS.Replace("@txtbox.ClientID@", "AAAA")

看來一切都很完美了,不過還沒結束
當你在VS2010上使用時你會發現字串內的文字是接近白色的
這對老人家的眼力是很大的考驗
20101124_1

這時候可以進去選項裡面調整

20101124_2

選擇字型與色形,再挑選VB XML CData 區段,調整你想要顏色,按下確定

20101124_3

收工

20101124_4





十一月 09

如果你有寫公用程式讓使用者使用,也許經過版本的更新
有些方法、函式已經過時或過期了
你不再建議使用者繼續使用,而是改用新的方法
這時候要怎麼提示使用者呢?

答案就是使用 Obsolete 這個屬性
先來看看範例程式碼

VB.NET 的語法如下

    Partial Public Class GetDirectoryFiles
        ''' <summary>
        ''' 取得資料夾與檔案
        ''' </summary>
        ''' <returns>String</returns>
        ''' <remarks></remarks>
        <Obsolete("這個方法已經過時了,建議使用新的方法GetDF()")> _
        Public Function GetDirectoryFile() As String
            Return ""
        End Function
    End Class

C# 的語法如下

public partial class GetDirectoryFiles
{
	/// <summary>
	/// 取得資料夾與檔案
	/// </summary>
	/// <returns>String</returns>
	/// <remarks></remarks>
	[Obsolete("這個方法已經過時了,建議使用新的方法GetDF()")]
	public string GetDirectoryFile()
	{
		return "";
	}
}

當使用者使用到這個方法、函式就會出現下面的提示
提示使用者需要注意一下
20101109_1





十一月 01

如果你是用SQL Dumper(黑暗執行緒:好用的SQL Dumper)來匯出SQL Server的資料,當你要匯入時
可能你會遇到 .sql 檔的檔案太大,SQL Server Management Studio 開不起來
或是開起來後,執行很慢
這時候我們就需要使用sqlcmd來幫我們執行指令,較不吃資源
使用方式為開始 --> 執行 --> cmd 

C:\Program Files\Microsoft SQL Server\90\Tools\Binn>sqlcmd -S 資料庫的IP -U 使用者名稱 -d 資料庫名稱 -i "C:\Documents and Settings\Administrator\SQLFile\SQL1.sql" 

如此就可以執行匯入了,如果還需要更詳細的資訊可以使用sqlcmd -? 這個指令 

C:\Program Files\Microsoft SQL Server\90\Tools\Binn>sqlcmd -?
Microsoft (R) SQL Server 命令列工具
版本 9.00.4035.00 NT INTEL X86
Copyright (c) Microsoft Corporation. All rights reserved. 

使用方式: Sqlcmd                [-U 登入識別碼]         [-P 密碼]
  [-S 伺服器]           [-H 主機名稱]           [-E 信任連接]
  [-d 使用資料庫名稱]   [-l 登入逾時]           [-t 查詢逾時]
  [-h 標頭]             [-s 資料行分隔符號]     [-w 螢幕寬度]
  [-a 封包大小]         [-e 回應輸入]           [-I 啟用引號識別碼]
  [-c 命令結束]         [-L 列出伺服器[清除輸出]]
  [-q "命令行查詢"]             [-Q "命令行查詢" 並結束]
  [-m 錯誤層次]         [-V 嚴重性層級]         [-W 移除句尾空格]
  [-u unicode 輸出]             [-r[0|1] 訊息傳至 stderr]
  [-i 輸入檔]           [-o 輸出檔]             [-z 新密碼]
  [-f <字碼頁> | i:<字碼頁>[,o:<字碼頁>]]               [-Z 新密碼並結束]
  [-k[1|2] 移除[取代] 控制字元]
  [-y 可變長度類型顯示寬度]
  [-Y 固定長度類型顯示寬度]
  [-p[1] 列印統計資料[冒號格式]]
  [-R 使用用戶端地區設定]
  [-b 發生錯誤時中止批次]
  [-v var = "值"...]  [-A 專用管理員連接]
  [-X[1] 停用命令, 啟動指令碼, 環境變數 [並結束]]
  [-x 停用變數替代]
  [-? 顯示語法摘要]