我是这样想的:
        int grade, point;
        long size1;        string sql1 = "select point,size,grade from users where login='1'";
        classDB nb = new classDB();
        DataSet sd = nb.TDataSet(sql1);
        DataTable dt = sd.Tables[0];        string sql3 = "select count(files.ID) from files,users where files.ID=users.ID and users.login='1'";
        classDB cc = new classDB();
        DataSet cds = cc.TDataSet(sql3);
        DataTable cdtb = cds.Tables[0];        CRules ri = new CRules();
        ri.grade = Convert.ToInt32(dt.Rows[0]["grade"]);
        ri.point = Convert.ToInt32(dt.Rows[0]["point"]);
        ri.i = cdtb.Rows.Count;
        grade = ri.levelup();
        point = ri.pointc();
        size1 = ri.rules();然后用一个update值送回数据库。
但是现在出现了一个问题,就是送回的值还是原封不动的原值,等于说类CRules中的方法完全无效,求解以下为CRules:public class CRules
{
    public int grade;
    public int size;
    public int point;
    public int i;
        public int pointc()
    {
        int u;
        u = i + 1;
        if (i == u)
        {
            point = point + 3;
        }
        return point;
    }    public int levelup()
    {
        switch (point)
        {
         case 9:grade=1;break;
         case 15:grade=2;break;
         case 21:grade=3;break;
         case 39:grade=4;break;
         case 51:grade=5;break;
         case 78:grade=6;break;
         case 99:grade=7;break;
         default: break;
        } 
        return grade;
    }    public long rules()
    {
        if (grade == 1)
        {
            size = 10485760;
        }
        else if (grade == 2)
        {
            size = 20971520;
        }
        else if (grade == 3)
        {
            size = 41943040;
        }
        else if (grade == 4)
        {
            size = 83886080;
        }
        else if (grade == 5)
        {
            size = 167772160;
        }
        else if (grade == 6)
        {
            size = 335544320;
        }
        else
        {
            size = 671088640;
        }
        return size;    }
}