当前位置: 代码迷 >> WinCE >> 怎么在wince中显示详细的错误信息
  详细解决方案

怎么在wince中显示详细的错误信息

热度:176   发布时间:2016-04-28 11:54:13.0
如何在wince中显示详细的异常信息
编写了一个程序,点击确定按钮时,执行一个存储过程,在存储过程里面,对数据进行处理,如果不符合条件,我就以 raiserror 200001 '信息'   return  这样的方式返回, 我在电脑上的wince模拟器上使用 ,是可以显示正常的错误信息的,但是安装到wince设备上以后,弹出的错误信息就是sqlexception。请问如何才能显示我在数据库里面返回的那个信息
------解决思路----------------------
弹出的错误信息就是sqlexception,说明SQL在本地的运行环境中缺少组件之类的文件,可以根据具体弹出的信息框来判断原因。

————————————————————————————————

我参加了 CSDN 2014 博客之星大赛,请大家多多支持,投票网址如下:
http://vote.blog.csdn.net/blogstar2014/details?username=woshi_ziyu#content
------解决思路----------------------
引用:
  catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

这是我弹出错误信息框代码

程序应该还没有运行到这一步吧
------解决思路----------------------
有其他的类型,可以参考一下这个代码:
public static void ShowSqlException(string connectionString)
{
    string queryString = "EXECUTE NonExistantStoredProcedure";
    StringBuilder errorMessages = new StringBuilder();

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        try
        {
            command.Connection.Open();
            command.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
            for (int i = 0; i < ex.Errors.Count; i++)
            {
                errorMessages.Append("Index #" + i + "\n" +
                    "Message: " + ex.Errors[i].Message + "\n" +
                    "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                    "Source: " + ex.Errors[i].Source + "\n" +
                    "Procedure: " + ex.Errors[i].Procedure + "\n");
            }
            Console.WriteLine(errorMessages.ToString());
        }
    }
}


MSDN SqlException 类

————————————————————————————————

我参加了 CSDN 2014 博客之星大赛,请大家多多支持,投票网址如下:
http://vote.blog.csdn.net/blogstar2014/details?username=woshi_ziyu#content

------解决思路----------------------
弹出 sqlexception 的异常信息,说明程序在还没有执行到你想要的 raiserror 200001 '信息'  时就已经出现异常了,毕竟模拟器与真机的环境还是有较大的差别的。在模拟器上执行没有问题,在真机上不一定就正确。
你需要先处理 sqlexception,保证 SQL 正常执行后,你一定会得到你想要的 raiserror 200001 '信息' 的。

————————————————————————————————————————————————
我参加 CSDN 博客之星大赛了,投票网址如下,大家多多支持。多谢先!
http://vote.blog.csdn.net/blogstar2014/details?username=91program#content
每天都可以投一票支持我一下的。
  相关解决方案