代码之家  ›  专栏  ›  技术社区  ›  Soham Dasgupta

SQL异常数据

  •  2
  • Soham Dasgupta  · 技术社区  · 15 年前

    我编写了一个使用SQL异常类的程序,然后使用它为主键冲突显示自定义消息。另外,我还需要导致冲突的主键值。如何从sqlException对象中获取生成异常的所有主键。

        Catch se As SqlException       
        For i As Integer = 0 To se.Errors.Count - 1
         Select Case se.Errors(i).Number.ToString
          Case "2627" ''Primary Key Violation
            Dim drH As DataRow = _ErrorDataSet.NewRow
            drH.Item("Module") = _mod
            drH.Item("Code") = ""
            drH.Item("Description") = ""
            drH.Item("Error") = "Document Number Already Exists"
            _ErrorDataSet.Rows.Add(drH)
        Next
       End Try
    
    1 回复  |  直到 12 年前
        1
  •  2
  •   Bentley Davis    14 年前

    我不相信sqleexception对象包含您要查找的数据。它不会在错误文本中转换键的名称,但在其中的任何位置都没有值。SQL Server不会将该信息传递回要使用的VB。

    获得主键值的一种方法是将数据存储在程序前面的变量中(您可能已经拥有这些变量),并在构造错误消息时使用这些变量。

    可能还有其他的方法。如果您在本节之前提供更多代码,我们可能会提供更多帮助。如果这个建议不符合你的需要,告诉我缺点是什么,我们可以做得更进一步。