首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

调用MSSQL的存储过程出现有关问题了

2014-06-05 
调用MSSQL的存储过程出现问题了 - .NET技术 / C#SQL codecreate -----alter proc AddNewAlm( @DID int ,@U

调用MSSQL的存储过程出现问题了 - .NET技术 / C#

SQL code
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

上面呢是存储过程内容,是插入一条数据,然后返回这条数据的ID值

经测试,VC++怎么调用都不行,结果返回不了,用C#测试,结果可以得到,不知道哪里出现了问题

C/C++ code
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;                }                      }


C# code
 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]);//这里输出正常的结果          }        }



[解决办法]
不是很熟,帮忙顶
[解决办法]
友情帮顶,友情帮顶
[解决办法]
额,这个是C#的,我帮你转到C#区去。
catch { return null; }
这里最好不要仅仅是返回,你可以打印错误信息看下或许就知道错误原因了。

热点排行