首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在看一段源码时搞不清楚,请先人帮大概看下,先感谢了

2013-12-17 
在看一段源码时搞不清楚,请前辈帮大概看下,先感谢了!mCmd.CommandText mSqlSqlDataReader mReader mC

在看一段源码时搞不清楚,请前辈帮大概看下,先感谢了!


      mCmd.CommandText = mSql;
            SqlDataReader mReader = mCmd.ExecuteReader();
            double _resultsum = 0;
            while (mReader.Read())
            {
                string LandLevel = mReader.GetString(0);
                IEnumerable<LandLevelItem> levels;
                levels = from p in landref.Levels   //这句是什么意思啊?
                         where p.LandLevel == LandLevel  //这句是什么意思啊?
                         select p; //这句是什么意思啊?
                if (levels.Count() > 0)
                {
                    levels.First().LevelArea = Math.Round(mReader.GetDouble(1), 2);   //这句是什么意思啊?
                }
                _resultsum += mReader.GetDouble(1);   //这句是什么意思啊?
            }
            foreach (LandLevelItem _obj in landref.Levels)   //这句是什么意思啊?
            {
                _obj.levelproportion = Math.Round(_obj.LevelArea / _resultsum, 2);   //这句是什么意思啊?
            }
            mReader.Close();

[解决办法]
Linq语句啊,基本的,其实和Sql oracle差不多的那么基本的都不知道怎么解释,意思就是从landref.Levels查找p.LandLevel == LandLevel的元素
[解决办法]
mCmd.CommandText?=?mSql;
????????????SqlDataReader?mReader?=?mCmd.ExecuteReader();
????????????double?_resultsum?=?0;
????????????while?(mReader.Read())
????????????{
????????????????string?LandLevel?=?mReader.GetString(0);
????????????????IEnumerable<LandLevelItem>?levels;
????????????????levels?=?from?p?in?landref.Levels???//这句是什么意思啊?
?????????????????????????where?p.LandLevel?==?LandLevel??//这句是什么意思啊?
?????????????????????????select?p;?//这句是什么意思啊?
                //这三行是一句,表示从landref.Levels中将其LandLevel属性等于LandLevel的元素提取出来,放在levels集合中。
????????????????if?(levels.Count()?>?0)
????????????????{
????????????????????levels.First().LevelArea?=?Math.Round(mReader.GetDouble(1),?2);???//这句是什么意思啊?
                    //取levels这个集合中的第一条,让它的LevelArea=reader的第一列四舍五入取2位
????????????????}
????????????????_resultsum?+=?mReader.GetDouble(1);???//这句是什么意思啊?
????????????}
????????????foreach?(LandLevelItem?_obj?in?landref.Levels)???//这句是什么意思啊? // foreach 就是遍历
????????????{
????????????????_obj.levelproportion?=?Math.Round(_obj.LevelArea?/?_resultsum,?2);???//这句是什么意思啊? //同上
????????????}
????????????mReader.Close();
[解决办法]
都是基本语法。
比如
int[] mums = { 1, 2, 3, 4, 5, 6 };
IEnumerable<num> 偶数 = form x in nums where x % 2 == 0 select x;
Console.WriteLine("第一个偶数: {0}", 偶数.First());
Console.WriteLine("所有的偶数:");
foreach (int i in 偶数)
    Console.WriteLine(i);

新建一个控制台程序,运行上面的代码
如果这个理解了,那么你那个程序就理解了。

热点排行