角色 类别 权重 A(人数) B(人数) C(人数) D(人数)
角色A A类别 0.5 50 30 20 10
0.5 50  30 20 10

B类别
0.5 50 30 20 10
0.5 50 30 20 10
。 等类别角色都还有



 表 A 角色A得分 角色B的分

表 B我现在想建一个触发器,让表A(指的是投票人数) 前台是对a b c d 进行的选择,统计了人数然后设计了( A=5,b=4  C=3  d=2)初值,
如果表A投票(批量更新的每行都是选择进行了投票,人数更新)根据人数 (A*权重)[第一类]所有相加。当表A更新时候,B表自动得到分数,更新到B表,
也许表达不清楚,重点就是想问下这个 触发器怎么建立
C# 写逻辑更新的方式如下:
    #endregion
        /// <summary>
        /// 多级模糊查询模型建立的方法
        /// </summary>
        /// <param name="Roules">是传入的相应角色</param>
        /// <returns></returns>
        public string EvealueRelust(string roluesName)
           {
            Eveal.BLL.SmallClass mySmallclass=new SmallClass();
            DataTable myTable = mySmallclass.GetData("distinct smallclass_name,S_Qz", "Rolues_Name='" + roluesName + "'").Tables[0];
            //得到角色想应的类别 下面是取得相应类别所保护的子因子;
            int rowsCount=myTable.Rows.Count;
            double setHA = 0; double setHB = 0; double setHC = 0; double setHD = 0;
            //循环相应类别,在
            for(int i=0; i<rowsCount;i++)
            {  string classSmall=myTable.Rows[i][0].ToString();
                DataTable myStatistics=mystai.GetData("statistics_name,Roules_name,s_qz,A,B,C,D","smallclass_name='"+classSmall+"'").Tables[0];
                int sRowsCount = myStatistics.Rows.Count;
                 double setA = 0; double setB = 0; double setC = 0; double setD = 0;
                for (int j = 0; j < sRowsCount; j++)
                {
                    //这一级循环是最里面的因子
                    doublyz=( Convert.ToDouble( myStatistics.Rows[j]["s_qz"].ToString())/100);
                    setA += Convert.ToDouble(myStatistics.Rows[j][3].ToString())*yz;  //循环计算;
                    setB += Convert.ToDouble(myStatistics.Rows[j][4].ToString())*yz;
                    setC += Convert.ToDouble(myStatistics.Rows[j][5].ToString())*yz;
                    setD += Convert.ToDouble(myStatistics.Rows[j][6].ToString())*yz;
                }
               double Hyz=(Convert.ToDouble( myTable.Rows[i][1])/100);
                setHA=setHA+setA*Hyz;
                setHB=setHB+setB*Hyz;
                setHC=setHC+setC*Hyz;
                setHD=setHD+setD*Hyz;
            }
                  return (setHA+"|"+setHB+"|"+setHC+"|"+setHD);
            }
      /// 执行插入到 最后评估表的分数
      /// </summary> 第二个更新数据表方法
      /// <param name="rolues"></param> 
        public void Exectjfen(string rolues)
        {
          string Roules=EvealueRelust(rolues);
          string[] result = Roules.Split('|');
        //查出set里面 A B C D 初值;这个地方先不根据数据库选;
          string strr = new System_Set().GetData("BigClass_set", "").Tables[0].Rows[0][0].ToString();
          string[] strrArry = strr.Split('|');
          double allScore = 0;
          for (int i = 0; i < 4; i++)
          {
              allScore = allScore + Convert.ToDouble(result[i]) * Convert.ToDouble(strrArry[i]);
                        }
          DataTable myEvalue = (new Eveal.BLL.Evaluate()).GetData("Expert_Score,Teacher_Score,student_Score", "setoff=1").Tables[0];
          DataTable myRolues = (new Eveal.BLL.Rolues()).GetData("R_Qz","").Tables[0];
          double myAllScore = 0;
          
         switch(rolues)           {
              case "专家":
                  { (new Eveal.BLL.Evaluate()).ExecuteUpdate("Expert_Score='" + (allScore/100).ToString()+ "'", "setoff=1");
                  myAllScore = Convert.ToDouble(myEvalue.Rows[0][0]) * Convert.ToDouble(myRolues.Rows[0][0]);
                  (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "set      /// 执行插入到 最后评估表的分数
      /// </summary>
      /// <param name="rolues"></param>
        
        public void Exectjfen(string rolues)
        {
          string Roules=EvealueRelust(rolues);
          string[] result = Roules.Split('|');
        //查出set里面 A B C D 初值;这个地方先不根据数据库选;
          string strr = new System_Set().GetData("BigClass_set", "").Tables[0].Rows[0][0].ToString();
          string[] strrArry = strr.Split('|');
          double allScore = 0;
          for (int i = 0; i < 4; i++)
          {
              allScore = allScore + Convert.ToDouble(result[i]) * Convert.ToDouble(strrArry[i]);
                        }
          DataTable myEvalue = (new Eveal.BLL.Evaluate()).GetData("Expert_Score,Teacher_Score,student_Score", "setoff=1").Tables[0];
          DataTable myRolues = (new Eveal.BLL.Rolues()).GetData("R_Qz","").Tables[0];
          double myAllScore = 0;
          
         switch(rolues)           {
              case "专家":
                  { (new Eveal.BLL.Evaluate()).ExecuteUpdate("Expert_Score='" + (allScore/100).ToString()+ "'", "setoff=1");
                  myAllScore = Convert.ToDouble(myEvalue.Rows[0][0]) * Convert.ToDouble(myRolues.Rows[0][0]);
                  (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "setoff=1");
                     
                      
                  break;
                  }
              case "同行教师":
                  {
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("teacher_Score='" + (allScore / 100).ToString() + "'", "setoff=1");
                      myAllScore = Convert.ToDouble(myEvalue.Rows[0][1]) * Convert.ToDouble(myRolues.Rows[1][0]);
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "setoff=1");
                      break;
                  }
              case "学生":
                  {
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("student_Score='" + (allScore / 100).ToString() + "'", "setoff=1");
                      myAllScore = Convert.ToDouble(myEvalue.Rows[0][2]) * Convert.ToDouble(myRolues.Rows[2][0]);
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "setoff=1");
                      break;
                  }
          
          }
                 }
                  break;
                  }
              case "同行教师":
                  {
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("teacher_Score='" + (allScore / 100).ToString() + "'", "setoff=1");
                      myAllScore = Convert.ToDouble(myEvalue.Rows[0][1]) * Convert.ToDouble(myRolues.Rows[1][0]);
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "setoff=1");
                      break;
                  }
              case "学生":
                  {
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("student_Score='" + (allScore / 100).ToString() + "'", "setoff=1");
                      myAllScore = Convert.ToDouble(myEvalue.Rows[0][2]) * Convert.ToDouble(myRolues.Rows[2][0]);
                      (new Eveal.BLL.Evaluate()).ExecuteUpdate("Total_Score='" + (myAllScore / 100).ToString() + "'", "setoff=1");
                      break;
                  }
          
          }
                 }
现在想在数据库建触发器,请各位指教: