例如某按钮对数据库进行 新增|删除|修改后
受到主键或者其他约束导致操作失败
在应用程序上及时提示用户
XXX出现重名的对话框提示用户这是简单的复杂的象多表关系中的错误提示该如何设置
我是一个C#的菜鸟,搞Winform的
在此不耻下问!

解决方案 »

  1.   

    一般数据库出错的时候,就会抛出异常,如果你是SQL Server,那么就会出SqlException。因此,你在catch了SqlException以后,直接Show出来就可以了。
    比如:try
    {
        // 你的代码
    }
    catch (SqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
      

  2.   

    a表有字段ID,b表有外键ID指向a表的ID,删除a表的记录时,先判断在b表中所对应ID有无记录,弹出一个确认对话框,
    如:“此分类下有N个产品,如果删除该分类,分类下的所有产品将销毁,确定删除吗?”,如果确定就先删除所对应ID的b表中的记录,在删除a表中记录。仅仅是一个思路!如果LINQ,就更简单了
      

  3.   

    这涉及到很多问题。太频繁的操作提示别用框,焦点无法获取或者难以回复到原有状态的别用框。有时候一个简单的小红*就代表了很多话。框中一般描述:做了什么,结果如何,我该怎么办。有的还有些什么code之类的。
    “您尝试从数据库中删除用户[admin]失败。如果您再次出现此问题,请联系管理员。”弹出的框的描述的话还得看用户。管理员用的可以专业点(给出堆栈都行),业务用户的可以细点(用户删除错误),外部用户的白话点,温柔点(操作不成功)。慢慢积累经验就好。可以看看别人的经验,看看别人写的软件。
      

  4.   

    看在那个功能上出的错,比如查询,一般简单来写:查询失败,原因:err.Message。不想把返回的错误直接提示,可以在返回错误的时候处理,定义错误提示。
      

  5.   

    自己抛异常try{}
    cathc(Exception e){}复杂点你也可以自己定义异常类class MyException:Exception{}try{}
    cathc(MyException e){}另外在那些你想进行提醒的地方你可以自己抛出异常象这样:throw new Exception("输入值必须>100,小于<1000");等
      

  6.   

    要根据所做的操作,以及所产生的异常来做提示
    可以不用系统的MessageBox,而是自定义一个WinForm来显示异常,
    当然加上楼上各位所说的自定义异常就更好了.
      

  7.   

    问下SQL SERVER的问题
    当字段设置为INT自增型后
    为什么输入重复后的记录移动行得到一个错误提示后
    然后在输入不重复的数据
    INT自增型会自动累加下去
    例如
    ID  Name[ID为主键 Name为候选键]
    1   a
    2   b
    3   c
    ========
    此时在新行上的Name列上输入  c
    --移动行出现提示错误[候选键值重复]
    ========
    然后在Name上输入d
    表就变为
    ID   Name
    1    a
    2    b
    3    c
    5    d为什么不会是
    ID   Name
    1    a
    2    b
    3    c
    4    d