日期:2014-05-18  浏览次数:20454 次

|M| 如何知道当前插入数据库的时候出错是什么错误 并对这个错误进行代码处理
本来我写用户注册的时候是
先判断用户要注册的用户在数据库里有没有这条记录
如果没有注册

但昨天看了SQL数据库约束的,就想到用约束来做过程是这样的
如表:
User
ID         Name
1           Kim

当用户再次注册Kim的时候就会出现 "违反了UNIQUE   KEY   约束 "
这样就不会有重复的用户注册
但有一个总是因为我是用
try
{
      user.Insert(info)   //添加用户记录
}
catch
{
      response.write( "用户名已经存在 ");
}
上面这样可以,但是当插入记录有别的错误的时候也是报这个错误
所以我想问
try
{
      user.Insert(info)   //添加用户记录
}
catch(Exception   ex)
{
    if(???)     在这里能不能判断是 "违反了UNIQUE   KEY   约束 "
    {
            然后在这里对程序中的这个 "违反了UNIQUE   KEY   约束 "进行相应的处理    
    }
}

PS:我并不是说要让我知道是什么错误,而是要让我的代码知道现在是什么错误,然后根据这个错误进行相应的处理

------解决方案--------------------
怎么一个同样的帖子?
------解决方案--------------------
Exception 只是异常类的基类,你可以找到相应特定异常。

最简的方法就是在异常发生的时候,在Catch里输出这个异常的类型,然后使用这个异常就是了。

比如:

try
{
user.Insert(info) //添加用户记录
}
catch(Exception ex)
{
Console.WriteLine(ex);
}

------解决方案--------------------
用异常代替错误处理是一种不好的方式

------解决方案--------------------
try{}catch(Exception ex){}

------解决方案--------------------
你使用SqlException试试看。
------解决方案--------------------
先查也好,使用异常也好,都是可以的。

如果你愿意,可以使用这两个方法其中的一个。

不过一般来说,系统抛出异常到客户端,通常会需要一定的时候,如果数据量很小而使得查询很快,使用先查找是否存在也可能更合适。没有一定怎么做,就看你的实际情况了。
------解决方案--------------------
发过一次了..