.net連接Sybase時,有時會遇到影響行數問題,下面就為您介紹一種.Net連接Sybase的影響行數問題,如果您感興趣的話,不妨一看。
工作中的一個項目用到了.Net連接Sybase數據庫,肯定會用到執行sql語句返回影響函數,問題就出在這個上面,每次返回的影響行數總是比實際的多1,執行一個update,在SQL Advantage中執行是影響0行,程序返回值偏偏是1,在SQL Advantage影響了1行的時候,返回值又變成了2。不知道大家有沒有遇到還是就是這個樣子,下面是具體的代碼:
方法一:
- using Sybase.Data.AseClIEnt;
- AseConnection conn = new
- AseConnection("PROVIDER=ASEOLEDB;Data Source=172.19.11.111:5000;User Id=sa;PassWord=sa;Initial Catalog=news;"); AseCommand cmd = new AseCommand("update record set filefile=file where column_id=300000", conn);
- try
- {
- conn.Open(); object o = cmd.ExecuteNonQuery();
- }
- catch (System.Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
方法二:
- OleDbConnection objConn = new
- OleDbConnection("PROVIDER=ASEOLEDB;Data Source=172.19.11.111:5000;User Id=sa;PassWord=sa;Initial Catalog=news;");OleDbCommand objCmd = new OleDbCommand("update paper_record set layout_filelayout_file=layout_file where column_id=300000",objConn);
- try
- {
- objConn.Open();
- object haha = objCmd.ExecuteNonQuery();
- }
- catch (System.Exception ex)
- {
- throw ex;}finally
- { objConn.Close();}
上面的sql 語句無論怎麼變化,受影響的行數都會比實際的多1。
.Net連接Sybase的OLEDB連接字符串:
- PROVIDER=ASEOLEDB;Data Source=172.19.11.111:5000;User Id=sa;PassWord=sa;Initial Catalog=news;