给一个属性赋值,在set里面写一些代码,完成数据库的更新操作。如果更新失败就不允许赋值,否则就完成赋值。我的问题是如果更新失败议什么样的方式告诉调用者属性赋值失败了呢?

解决方案 »

  1.   


            public string Property
            {
                set 
                {
                    bool updateResult = false;
                    SqlConnection cn = new SqlConnection("連接字符串");
                    SqlCommand cmd = new SqlCommand("update table set col='" + tmp + "'", cn);
                    try
                    {
                        string tmp = value;
                        cn.Open();
                        if (cmd.ExecuteNonQuery() > 0)
                        {
                            updateResult = true;
                        }
                    }
                    finally
                    {
                        cn.Close();
                        cmd.Dispose();
                        cn.Dispose();
                    }
                    if (!updateResult)
                    {
                        throw new Exception("無法接受的賦值.");
                    }
                }
            }
      

  2.   

    抛出特定的异常,不要简单的用Exception,最好是自定义的异常,在外面Catch这个特定的异常
      

  3.   

    將SQL語句寫入存儲過程中,使用事務.
      

  4.   

    或者在类中新建一个标识变量public class clsName
    {
       public bool IsCurrentOperateSuccess = false;  // 当前执行的操作是否成功   public string PropertyName
       {
           set 
           {
               if(操作成功)
               {
                 IsCurrentOperateSuccess = true;
               }
               else
               {
                 IsCurrentOperateSuccess = false;
               }
            }
       }
    }外部调用
    clsName obj = new clsName();
    obj.PropertyName = "abc";
    if(obj.IsCurrentOperateSuccess == true)
    {
       // 执行操作
    }