none
Silverlight 中 如何在客户端接收到服务器端的异常 RRS feed

  • 问题

  • 公司正在开发一个SL3的程序,程序中有一个上传数据的功能。 这个功能现在设定为由客户上传一个excel文件,文件中包含所有需要插入的数据。

    为了实现这个功能的时候,首先将文件上传到服务器上,然后打开文件读取数据,再将数据插入到数据库中。

    在编程中我们遇到了一些问题:

    1。如何在server端获取插入数据后的异常?比如该数据已经存在等等。

    2. 如何将server端捕获的异常发给客户端?使客户端可以接受到异常后抛出一个窗口,显示所有异常信息。

    谢谢

    2010年3月30日 9:14

答案

  • 你好,

          服务器端的话,肯定没有submitchange这个概念。

          服务器端,你可以override OnError方法来获得错误信息。

    2010年4月6日 2:32

全部回复

  • 公司正在开发一个SL3的程序,程序中有一个上传数据的功能。 这个功能现在设定为由客户上传一个excel文件,文件中包含所有需要插入的数据。

    为了实现这个功能的时候,首先将文件上传到服务器上,然后打开文件读取数据,再将数据插入到数据库中。

    在编程中我们遇到了一些问题:

    1。如何在server端获取插入数据后的异常?比如该数据已经存在等等。

    2. 如何将server端捕获的异常发给客户端?使客户端可以接受到异常后抛出一个窗口,显示所有异常信息。

    谢谢


    问题1:try catch里return exception的Message

    问题2:弹出窗口可以用MessageBox或ChildWindow


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》
    2010年3月30日 13:24
    版主
  • 谢谢楼上的回答,

    1. 我现在就是按照你的说法,所有需要client端捕获server端exception的方法,都返回了exception 的 message。 但是我想知道有没有一个属性或者一种特殊的exception 可以让客户端直接catch到?

    2. 我的问题1没有说的很清楚,我除了需要获得比较清晰的exception的信息外,我还需要知道是哪个数据产生了这个exception。

    我现在是自己写了一个方法,对所有数据进行分析,但这样做很耗费时间,我需要多次遍历所有的数据。

    比如当我想要判断在excel文件中的数据是否已经存在于数据库中,我需要将每一行的数据取出与在数据库中查找是否已经存在。当然是用linq完成这个功能比较并不复杂,但依然需要很长时间。

    所以我希望可以跳过自己判断的这个过程,当server端调用SaveChanges()方法时,有没有像客户端的submitChanges()方法一样,返回一个类似于SubmitOperation的对象,可以从中找到所有的exception和引发exception对象的信息?

    3. 还有一个问题就是客户端如何能够获得数据库操作结束的时间?

    我发现SaveChanges()调用成功后,其实数据库并没有完成数据插入的工作。曾经有一次上传一个20000多行的excel文件,数据库用了将近10分钟的时间进行数据插入工作,而这个时候我的客户端早就收到了server端操作成功完成的信息。

     

    问题有些多,又属于初学者,麻烦大家了。

    2010年3月30日 15:31
  • 你好,

          你是在使用WCF-RIA么,如果是的话,在callback里边就可以得到相关的错误信息。

          而且SubmitOperation有相关属性告诉你哪个Entity有问题。SubmitOperation.EntitiesInError

    2010年4月1日 7:56
  • 在服务器端也可以有SubmitOperation 属性吗? 这个应该是由SubmitChanges 方法产生的吧, 但我在服务器端的domaiService类中,并没有见到SubmitChanges这个方法呀?我只找到了SaveChanges方法,但没有一个类似于SubmitOperation的属性,可以返回有问题的Entity。

    请问在服务器端也可以调用SubmitChanges方法吗?如何调用?

     

    2010年4月1日 13:38
  • 如果是使用的服务,在调用的时候可以通过掉用完成事件参数获取是否有异常信息等

    e.Error。

    2010年4月3日 12:37
  • 你好,

          服务器端的话,肯定没有submitchange这个概念。

          服务器端,你可以override OnError方法来获得错误信息。

    2010年4月6日 2:32