2008年5月2日 星期五

.Net 2.0 SqlDataSource 使用 StoreProcedure 注意事項

雖然在 .Net 2.0 提供了一個好用的 SqlDataSource 元件,但實際開發的經驗裡發現,當資料來源使用的是 StoreProcedure時,如果所傳入的參數為空白,則會自動被轉成 NULL。當 SQL Server 收到時,會自動忽略掉這個指令而被去執行,同時也不會發出任何的錯誤訊息。

為了防止這現象發生,在 .Net 的 SqlDataSource 呼叫 StoreProcedure 時,於加入參數的地方多一段程式來解決:

SqlDataSource_Do_import.SelectParameters.Clear();
SqlDataSource_Do_import.SelectParameters.Add("senos", str_senos);
SqlDataSource_Do_import.SelectParameters.Add("keyinEmpno", sso.empNo);
SqlDataSource_Do_import.SelectParameters.Add("keyinEmpname", sso.empName);

//將所有空字串都設成不轉為NULL
for (int iPa = 0; iPa <>
SqlDataSource_Do_import.SelectParameters[iPa].ConvertEmptyStringToNull = false;

SqlDataSource_Do_import.Select(new DataSourceSelectArguments());

沒有留言:

張貼留言