自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

執(zhí)行ADO測試程序相關使用說明

開發(fā) 后端
但是沒有想到在Sybase ASE ADO.NET中竟然要求操作AseCommand的Parameters時要求數(shù)據(jù)庫操持連接。

原來在Sql Server及Oracle上操作時,執(zhí)行完成后直接把連接關閉了。返回的參數(shù)想怎么處理就怎么處理,并不會出錯,注意使用COM交互操作訪問ADO的數(shù)據(jù)將極大的降低性能。

不知道這里有多少人用Sybase做數(shù)據(jù)庫開發(fā)的,我是有點受不了了。用了ADO測試程序,沖破重重阻力,終于系統(tǒng)算是正常運行了,要做更進一步的處理:增加數(shù)據(jù)權限。我們原來是在Sql Server上用函數(shù)直接返回的結果集來判斷的。#t#

但是Sybase不支持函數(shù),只好用存儲過程返回一個判斷權限的條件字符串動態(tài)執(zhí)行。問題是取出輸出參數(shù)總提提示“Command has been closed”。奇怪啊,明明執(zhí)行的時候是Open了Connection了。寫了一個ADO測試程序

  1.  AseConnection con = new AseConnection("Data Source='SYBASE'Port=5000UID='sa'PWD=''Database='data';Connection Timeout='300';") ;   
  2. AseCommand com = new AseCommand("GetDataRightSQL", con) ;   
  3. com.CommandType = System.Data.CommandType.StoredProcedure ;   
  4. try   
  5. {   
  6. AseParameter prm = new AseParameter("@UserID", 1) ;   
  7. //prm.Direction = System.Data.ParameterDirection.Input ;   
  8. com.Parameters.Add(prm) ;   
  9. prm = new AseParameter("@Category","Department") ;   
  10. com.Parameters.Add(prm) ;   
  11. com.Parameters.Add(new AseParameter("@FieldName", "Dept_ID")) ;   
  12. prm = new AseParameter("@returnSql", AseDbType.VarChar, 250) ;   
  13. prm.Direction = System.Data.ParameterDirection.Output ;   
  14. com.Parameters.Add(prm) ;   
  15. con.Open() ;   
  16. com.ExecuteNonQuery() ;   
  17. Console.WriteLine(com.Parameters["@returnSql"].Value) ;  

由于是我們有一個數(shù)據(jù)層專門處理數(shù)據(jù)庫操作,開始懷疑封裝的不好了。檢查了N次也不知道在哪出錯,ADO測試程序總以為是輸出參數(shù)類型有問題,試過幾次,長度也改過。不行。
后來注意到:跟蹤執(zhí)行的時候執(zhí)行成功,總是在取參數(shù)的時候出錯。

再看一下錯誤信息“Command has been closed”,暈!ADO測試程序不會是取參數(shù)值的時候要求數(shù)據(jù)庫連接保持Open狀態(tài)吧? 修改一下測試代碼:

  1. AseParameter prm = new AseParameter("@UserID", 1) ;   
  2. //   prm.Direction = System.Data.ParameterDirection.Input ;   
  3. com.Parameters.Add(prm) ;   
  4. prm = new AseParameter("@Category","Department") ;   
  5. com.Parameters.Add(prm) ;   
  6. com.Parameters.Add(new AseParameter("@FieldName", "Dept_ID")) ;   
  7. prm = new AseParameter("@returnSql", AseDbType.VarChar, 250) ;   
  8. prm.Direction = System.Data.ParameterDirection.Output ;   
  9. com.Parameters.Add(prm) ;   
  10. con.Open() ;   
  11. com.ExecuteNonQuery() ;   
  12. con.Close() ; //提前關閉數(shù)據(jù)庫   
  13. Console.WriteLine(com.Parameters["@returnSql"].Value) ;  
責任編輯:chenqingxiang 來源: 計世網(wǎng)
相關推薦

2010-01-04 16:54:22

ADO分頁

2009-12-29 14:28:58

ADO數(shù)據(jù)

2009-12-23 09:14:52

ADO.NET連接池

2009-12-31 09:42:41

ADO對象模型

2009-12-25 17:01:21

ADO參數(shù)

2009-12-18 14:20:26

ADO.NET組件

2009-12-18 15:11:50

ADO.NET類

2009-12-21 14:55:49

ADO.NET對象

2009-12-22 10:43:48

ADO.NET類庫

2009-12-18 13:52:39

ADO.NET設計器

2009-12-25 18:12:43

WPF裝飾器

2009-12-18 17:06:37

ADO.NET 數(shù)據(jù)庫

2009-12-23 14:53:28

ADO.NET連接池

2009-12-24 09:14:52

ADO.Net Tea

2009-12-28 11:23:38

WPF資源文件

2009-12-25 15:57:14

ADO調(diào)用

2009-12-23 15:13:15

Ado.Net Syb

2009-12-21 16:07:52

ADO.NET數(shù)據(jù)庫

2009-12-22 16:03:34

ADO.NET Ent

2009-12-21 14:55:49

ADO.NET類庫
點贊
收藏

51CTO技術棧公眾號