调用MSSQL的存储过程出现问题了 - .NET技术 / C#
create -----alter proc AddNewAlm( @DID int , @UID int , @ATID int , @P1 int ,@P2 int, @SCIP nvarchar(20), @ATime datetime ) --returns int asbegin declare @IsHas int; declare @AID int; set @AID = 0; update AlmInfoTmp set UID=UID where DID=@DID and UID=@UID and ATID=@ATID and ATPara1 = @P1 and ATPara2=@P2 ; if @@rowcount = 0 begin insert into AlmInfo( DID, UID, ATID, ATPara1, ATPara2, SCIP, ATime) values( @DID, @UID, @ATID, @P1, @P2, @SCIP, @ATime ) ; if @@rowcount > 0 insert into AlmInfoTmp( DID, UID, ATID, ATPara1, ATPara2, SCIP, ATime) values( @DID, @UID, @ATID, @P1, @P2, @SCIP, @ATime ); set @AID = (select top 1 ID from AlmInfo where DID=@DID and UID=@UID and ATID=@ATID order by ATime DESC) ; end select @AID as ID; end
CString strSQL; strSQL.Format("exec dbo.AddNewAlm @DID=%d, @UID=%d,@ATID=%d,@P1=%d,@P2=%d,@SCIP='%s' ,@ATime='%s'", lSID, lUID, nType, p1, p2, scip, time); if( pRS->Open(strSQL, adCmdText ) ) ///;//adCmdStoredProc ); { long ll = 0; ll = pRS->GetRecordCount(); if( pRS->GetCollect( (long)0, ll ) )//这里返回异常 { lAID = ll; } }
public SqlDataReader GetResult(String sql) { try { comm.CommandText = sql; comm.CommandType = System.Data.CommandType.Text; return comm.ExecuteReader(); } catch { return null; } } DBMng m = new DBMng(); if (m.InitConn()) { SqlDataReader dr = m.GetResult("exec dbo.AddNewAlm @DID=13, @UID=1,@ATID=17,@P1=0,@P2=0,@SCIP='192.168.3.151' ,@ATime='2010-04-19 17:59:28'"); if (dr != null && dr.Read()) { Response.Write(dr[0]);//这里输出正常的结果 } }