發表文章

目前顯示的是 11月, 2015的文章

下載Visual Studio Express離線安裝檔方法

下載Visual Studio Express離線安裝檔方法 先下載線上安裝檔後, 執行時增加"/layout"參數即可。 reference web: https://msdn.microsoft.com/library/e2h7fzkw(v=vs.140).aspx#BKMK_Offline

[Batch]利用ping確認網路是否有通

batch file code: @ECHO OFF Ping 168.95.1.1 -n 1 -w 1000 > nul SET CHK_NET_STATUS=N if errorlevel 1 ( echo Not connected SET CHK_NET_STATUS=N ) else ( echo success SET CHK_NET_STATUS=Y ) echo %CHK_NET_STATUS% pause reference web: http://stackoverflow.com/questions/6357515/batch-files-using-ping-to-test-network-connectivity

C# 使用Parameter來避免SQL Injection問題

一般常用的SQL查詢語法,若有需要Client端指定參數名稱,都是使用組字串的方式來達成,但若遇到使用者輸入的資料包含了特殊符號,尤其是單引號,SQL就會出錯,嚴重還會有資安的問題,最好的方法就是使用Parameter的方式來加入參數,這個方法最大的好處是,若資料包含單引號,系統也不會有問題,也可以正常將單引號寫入Table(類以系統自己將1個單引號取代為2個單引號後寫入Table)。 範例如下(使用MSSQL為範例): string sql = "select * from table where a = :a"; using (OleDbConnection Conn = new OleDbConnection(_dbConnString)) { Conn.Open(); using (OleDbCommand oraCmd = new OleDbCommand(sql, Conn)) { oraCmd.Parameters.Add("a", OleDbType.VarChar, 20).Value = "1234"; OleDbDataAdapter da = new OleDbDataAdapter(oraCmd); DataSet ds = new DataSet(); da.Fill(ds); DataTable dtResult = ds.Tables[0]; Console.WriteLine("data row = " + dtResult.Rows.Count.ToString()); Console.ReadKey(); } Conn.Close(); } 而SQL的Parameter符號依每個資料庫或連線方式而有所不同。 .Net For Oracle:使用冒號(:) + Parameter名稱 (若傳入空字串,要先轉為DBNull.Value) .Net For MSSQL:使用小老鼠(@) + Parameter名稱 ODBC:使用問號(?),因為不需指定Parameter名稱