try{}catch(Exception ex){}怎么指定SQL的错误代码?

禁用F3 2011-05-30 07:41:56

SQL里面的错误代码213,
Msg 213, Level 16, State 1, Line 1
插入错误: 列名或所提供值的数目与表定义不匹配。


怎么用在try里面指定他.我想修改这个错误提示
...全文
293 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chirea 的回复:]
引用 8 楼 caozhy 的回复:
引用 6 楼 chirea 的回复:
断点看到的结果是
ErrorCode的值是 -2146232060
而不是
Msg 2627, Level 14, State 1, Line 1
违反了 PRIMARY KEY 约束 'PK_Years'。不能在对象 'dbo.Years' 中插入重复键。
语句已终止。
这个2627

这个是-214……
[/Quote]
此错误非彼错误。
是返回的 HRESULT

参考 msdn。
lpingz 2011-05-30
  • 打赏
  • 举报
回复
懒得试了!
直接用笨方法比较 ex.Message == "插入错误: 列名或所提供值的数目与表定义不匹配。"

*-*!!
禁用F3 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 caozhy 的回复:]
引用 6 楼 chirea 的回复:
断点看到的结果是
ErrorCode的值是 -2146232060
而不是
Msg 2627, Level 14, State 1, Line 1
违反了 PRIMARY KEY 约束 'PK_Years'。不能在对象 'dbo.Years' 中插入重复键。
语句已终止。
这个2627

这个是-2146232060是什么值,在哪看到的?不能……
[/Quote]

如果是31次方,那这个2627也不是-2146232060这个值呀
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlexception_members(v=vs.80).aspx

threenewbee 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chirea 的回复:]
断点看到的结果是
ErrorCode的值是 -2146232060
而不是
Msg 2627, Level 14, State 1, Line 1
违反了 PRIMARY KEY 约束 'PK_Years'。不能在对象 'dbo.Years' 中插入重复键。
语句已终止。
这个2627

这个是-2146232060是什么值,在哪看到的?不能指定到这个MSG的值吗?
[/Quote]
我知道了。因为SQL Error是无符号整数,所以转换过来要加上 2的31次方(2147483648)。
大飞飞虫 2011-05-30
  • 打赏
  • 举报
回复
你不如在存储过程里替换掉这个异常后再抛出来。。。。 这样有很多FUN你可以用
禁用F3 2011-05-30
  • 打赏
  • 举报
回复
断点看到的结果是
ErrorCode的值是 -2146232060
而不是
Msg 2627, Level 14, State 1, Line 1
违反了 PRIMARY KEY 约束 'PK_Years'。不能在对象 'dbo.Years' 中插入重复键。
语句已终止。
这个2627

这个是-2146232060是什么值,在哪看到的?不能指定到这个MSG的值吗?
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
在 switch (ex.ErrorCode) 这里下断点。
禁用F3 2011-05-30
  • 打赏
  • 举报
回复
catch (SqlException ex)
{
switch (ex.ErrorCode)
{
case xxx:
throw new Exception("出现了这样的错误" + ex.Message);
...
}

用这个没发应,我指定了值.如213,2627的错误代码.没有提示.什么反应也没有
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
try
{
...
}
catch (SqlException ex)
{
switch (ex.ErrorCode)
{
case xxx:
throw new Exception("出现了这样的错误" + ex.Message);
...
}
}
禁用F3 2011-05-30
  • 打赏
  • 举报
回复
我是要指定错误编码.再修改他的消息

如这样
try
{
...
}
catch (Exception ex)
{

if (这里不只道用什么==SQL的错误编号号)
{
messagebox.show("我更改的消息内容");
}

}
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
try
{
...
}
catch (Exception ex)
{
throw new Exception("出现了这样的错误" + ex.Message);
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧