.net连接Sybase时,有时会遇到影响行数问题,下面就为您介绍一种.net连接Sybase的影响行数问题,如果您感兴趣的话,不妨一看。
工作中的一个项目用到了.net连接Sybase数据库,肯定会用到执行SQL语句返回影响函数,问题就出在这个上面,每次返回的影响行数总是比实际的多1,执行一个update,在SQL Advantage中执行是影响0行,程序返回值偏偏是1,在SQL Advantage影响了1行的时候,返回值又变成了2。下面是具体的代码:
方法一:
usingSybase.Data.AseClient; AseConnectionconn=new AseConnection("PROVIDER=ASEOLEDB;DataSource=172.19.11.111:5000;UserId=sa;Password=sa;InitialCatalog=news;");AseCommandcmd=newAseCommand("updaterecordsetfilefile=filewherecolumn_id=300000",conn); try { conn.Open();objecto=cmd.ExecuteNonQuery(); } catch(System.Exceptionex) { throwex; } finally { conn.Close(); }
方法二:
OleDbConnectionobjConn=new OleDbConnection("PROVIDER=ASEOLEDB;DataSource=172.19.11.111:5000;UserId=sa;Password=sa;InitialCatalog=news;");OleDbCommandobjCmd=newOleDbCommand("updatepaper_recordsetlayout_filelayout_file=layout_filewherecolumn_id=300000",objConn); try { objConn.Open(); objecthaha=objCmd.ExecuteNonQuery(); } catch(System.Exceptionex) { throwex;}finally {objConn.Close();}
上面的SQL语句无论怎么变化,受影响的行数都会比实际的多1。
.net连接Sybase的OLEDB连接字符串:
PROVIDER=ASEOLEDB;DataSource=172.19.11.111:5000;UserId=sa;Password=sa;InitialCatalog=news;