为什么捕捉不到错误!纳闷!

SELECT TMID FROM TiMu WHERE TMID=@tmid
if(@@ROWCOUNT=0)
BEGIN
BEGIN TRANSACTION
INSERT INTO TiMu (TMID,TMNanDu,TMType,KpNum,Timing,Score)
VALUES (@tmid,@tmnandu,@tmtype,@kpnum,@timing,@score)

if @@error <> 0
rollback transaction
COMMIT TRANSACTION

END
当运行到INSERT INTO TiMu (TMID,TMNanDu,TMType,KpNum,Timing,Score)
VALUES (@tmid,@tmnandu,@tmtype,@kpnum,@timing,@score)
时 明明@tmnandu 是错误的。也执行不了 为什么 外面的程序捕捉不到 c#的。
[498 byte] By [spz007123] at [2008-4-12]
# 1
if @@error <> 0
begin
raiserror('Sorry,Insert Error Occurs!',16,1) /*抛出错误*/
rollback transaction
end
COMMIT TRANSACTION
hellowork-一两清风 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 2
if @@error <> 0
begin
rollback transaction
return 1 --error
end
COMMIT TRANSACTION
return 0 --success
csdnweii-庸医 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 3
在程序里判断返回值
csdnweii-庸医 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 4
在外面怎么接收这个出错信息?

spz007123 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 5
C#:
try
{
使用ADO插入;
}
catch (Exception e)
{
对INSERT中使用raiserror()抛出的错误进行处理;
}
hellowork-一两清风 at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...
# 6
ffffffff
angleyes at 2007-10-25 > top of Msdn China Tech,MS-SQL Server,基础类...