使用linq获取双值并将其转换为字符串时遇到问题。我的代码是:-
public List<ShowDataOnClient> GetCardListToShow()
{
try
{
List<ShowDataOnClient> CardList = new List<ShowDataOnClient>();
using (ProgressCardLINQDataContext c = new ProgressCardLINQDataContext())
{
CardList = (from card in c.GetTable<T_PROGRESSCARD>()
where card.RecordStatus.Equals(RecordStatus.Active)
select new ShowDataOnClient
{
Student=(from student in c.T_STUDENTs
where student.Id.Equals(card.StudentId)
select student.Name).Single().ToString(),
Test=(from test in c.T_TESTs
where test.Id.Equals(card.TestId)
select test.Name).Single().ToString(),
MaxMarks = (from test in c.T_TESTs
where test.Id.Equals(card.TestId)
select test.MaxMarks).Single().ToString(),
MarksObtain=card.MarksObtain.ToString(),
Percentage=card.Percentage.ToString()
}).ToList<ShowDataOnClient>();
}
return CardList;
}
catch
{
return new List<ShowDataOnClient>();
}
}
我也尝试过:-
Percentage=Math.Truncate(card.Percentage).ToString()
当我在ToString中传递"N2"时,会出现异常"方法'System.String-ToString(System.String)'不支持转换为SQL。">
转换后得到的值是这样的:-52000000000000e+001
有人帮我吗
ShowDataOnClient
类应将Percentage
的值存储为double
。您可以格式化在稍后阶段向用户显示替身的方式。如何做到这一点取决于用于显示数据的控件。
这还有一个额外的好处,即排序功能将按预期工作。如果你这么早就把百分比转换成字符串,那么按该列排序看起来就不太合适了
% as String % as double
1% 1%
10% 2%
11% 10%
2% 11%
23% 23%
etc. etc.
试试这个:
double Percentage = card.Percentage;
string PercentageStr = Percentage.ToString();
这不会将linq调用到sql并提供您想要的内容。