發表文章

目前顯示的是 2月, 2009的文章

WebService 利用SOAP標頭來進行帳號密碼驗證

利用WebService來撰寫三層式架構的中間層是一個不錯的方法,但是 由於WebSerivce夠開放(資料庫存取直接暴露在網際網路上),這是微軟給予有心人士天大的恩賜,難免有一些安全性不足的缺點,在此可以利用 SOAP標頭來進行一些基本的安全防護,至少可以避免一些不會必要的攻擊。

ADO.NET 建立連線字串

程式中建立Dbconnection物件時,需提供連線字串、資料庫伺服器、名稱、安全性資訊,以下為連線字串的索引鍵。 Application Name :應用程式名稱,若沒有提供,預設為 .Net SqlClient Data Provider。 AttachDBFilename :也可寫為 extended properties 或 Initaial File Name,資料庫檔案的名稱,需包含完整路徑,可搭配 |DataDirectory| 來設定相對路徑。且資料庫不能是唯讀,不支援HTTP格式。

SQL 格式化字串

查詢結果格式化成特定字數,例如 查詢出 39 格式化成039 select right(cast(power(10,3) as varchar) + caseno ,3) as caseno from ofdoc 分析 1、select power(10,3)得到1000 2、select cast(1000+33 as varchar) 將1000轉換類型 3、select right(100039,3) 從右邊取3個字串得到039

利用OleDb讀取csv檔 字串問題

如果同一個資料欄位存在 數字 和 字串 的話,使用這個方法預設會判定為 數值 , 因此字串的資料就會消失不見,因此必須動態加入.ini,但是個人認為除非上傳的檔案都是同樣的相同的檔名就 可以這樣用,不然的話多人同時存取的時候可能會有lock的問題存在。 下面第二種方法使用資料流來讀取資料就沒有會將字串判定為數值的事情發生了

使用NET內建FTP出現中文檔名變亂碼

本來興高采烈的寫出NET 上傳下載的FTP後測試一切正常,結果在最後階段發現中文檔名出現亂碼(內文正常),查了老半天因為能力不足無法解決,最後只好靠不太會操作的 win32API終於解決了中文檔名的問題,不過也折騰了好幾天,真是要多加油了><。 NET 的FTP改成可以多個檔案上傳並且再最後一的檔案時關閉FTP連線使用ftpReq.KeepAlive = true; NET竟然沒有CLOSE 所以我也沒辦法測試這樣是否真的關閉,至於API部分,由於目前台灣時間是早上五點半,在不睡就要死了,所以改天有機會再寫了

WebService 使用多載

WebService預設是不能使用多載,但只要使用WebMethod的屬性MessageName給予不同的名稱並修改 WebServiceBinding (預設為BasicProfile1_1) ,就可以正常使用了。 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.None)] public class ServiceUserAdmin : System.Web.Services.WebService { [WebMethod(MessageName = "SingleStrSQL")]//T-SQL查詢 [SoapHeader("soapSet")] public DataSet sqlDs(string strSQL) { if (ValidUser() == false) return myErrDs; try { return objSql.RunDataSet(strSQL); } catch (Exception ex) { throw ex; } } [WebMethod(MessageName = "IncoludConnectionString")]//T-SQL查詢變更資料庫連線 [SoapHeader("soapSet")] public DataSet sqlDs(string strSQL, string myConnectionString) { if (ValidUser() == false) return myErrDs; try { return objSql.RunDataSet(strSQL, myConnectionString); } catch (Exception ex) { throw ex; } } } 

計算執行時間程式執行時間

在寫程式的時候我們常常需要測量程式執行時間 .NET本身有提供所謂的效能計數器 精度非常高 但是使用上比較繁瑣 如果我們需要簡單的測量時間就好 對幾一千分之一秒的時間誤差沒有很刻求 那以下有兩種常用的方法可以簡單的計算目標程式所花費的執行時間