如何把发送邮件与操作数据库放在一个事务中??要保证发送邮件成功,那么操作数据库(入插入一条记录)也必须成功,如果一个失败,全部回滚?

解决方案 »

  1.   

    是不是应该反过来?如果可能的话,应该先插入数据库记录,再发送邮件
    因为邮件发出去后就没法取消了(覆水难收:D)标准的做法是使用COM+的CRM系统,让自己的class也能参与事务,但有些麻烦;如果不是至关重要的应用,就用try/catch自己实现回滚等操作也是可以的
      

  2.   

    haha===============================
        CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
    软件!
        界面: http://qqwwee.com/
        下载: http://qqwwee.com/csdn.rar 包含源代码
      

  3.   

    邮件如果已经发送出去,恐怕是没办法回滚了吧。
    可是不发送的话怎么判断是不是能发送成功呢?有点勃论的感觉呢。
    关键看怎么判断是否能发送成功了,是否可以考虑只要smtp能连通就行了?如果这样,倒是可以每次添加记录的时候判断smtp连通性,如果连续N次无法连通就回滚,不知道可行否?
      

  4.   

    ????==============================
    有理想,没道德,有文化,没纪律
    ==============================
    sql-server = 宋庆龄色
      

  5.   

    首先進進行數據庫交易操作但是不要COMMIT 等所有的同一個事務里的所有數據庫操作完畢.且成功,然後發信件  ,若發信成功,提交數據庫操作.否則回滾所的同一個事務里的所有數據庫操作..NET裡面有很好的事務回滾機制.