在看一段源码时搞不清楚,请前辈帮大概看下,先感谢了!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);
新建一个控制台程序,运行上面的代码
如果这个理解了,那么你那个程序就理解了。