为何?用Linq排序的时候,int 类型字段可以...但是 float类型不行?何解?
字段定义:

[解决办法]
数据库的float和C#里的float也不是一个float啊
------解决方案--------------------
不是float排序不行,而是你的字段没办法转换成float的。
[解决办法]
对table没有好感~~
为什么不用实体类呢~
[解决办法]
SQL Server类型与C#类型对应关系
http://www.cnblogs.com/abllyboy/archive/2010/11/11/1875122.html
[解决办法]
ORM是个概念; Linq to sql其中的一种实现,LinqToSql已经不更新了,有更强大的EntityFramwork;
也可以自己简单第实现ORM,如下
public static List<Entity> GetData()
{
const string sql = "";
List<Entity> list = new List<Entity>();
using (SqlConnection conn = new SqlConnection(GlobalSetting.ConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Entity entity = new Entity();
entity.ID = Guid.Parse(dr["ID"].ToString());
....//这部分可以使用CodeSmith生成
list.Add(entity);
}
}
return list;
}
返回的是强类型的数据集合,比Table好多~
可以看看我科普的帖子
http://bbs.csdn.net/topics/390435776
[解决办法]
不是float排序不行,而是你的字段没办法转换成float的。
[解决办法]
貌似,数据库中的float 是对应C#中的 double...
而C#中的float,数据库中没有对应的类型....
这倒也不是,主要是两种类型的精确度不一样
当数据类型是Numeric(10, 6)这种时,应该就可以转成C#中的float,主要是精确度以及数值范围
[解决办法]
断点查看那个列的实际数据类型,不要想当然地转换,在不知道实际类型的情况下,你直接Cast<object>,然后用object排序也可以的。
[解决办法]
个人觉得你数据库设计都有问题。Fprice既然是表示价格金额,就不应该用float类型,应该用decimal或者Number