Min*_*dan 1 c# sql linq asp.net
我尝试按编号订购部门,但由于部门编号作为字符串存储在数据库中,我不能只使用按编号订购。我尝试将其解析为浮点数,但没有奏效。然后我尝试将其解析为 Double。那也行不通。有什么建议?以下是我的代码。
using (var db = new Context())
{
var datasource = (from x in db.Departments
orderby double.Parse(x.DepartmentNumber)
select x).ToList();
lvData.DataSource = datasource;
lvData.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
感谢您的回答,我做了以下操作,但结果并不完全正确。
var datasource = (from x in db.Departments orderby x.DepartmentNumber select x).ToList().OrderBy(Department => float.Parse(Department.DepartmentNumber));
Run Code Online (Sandbox Code Playgroud)
一种解决方案如下:
var datasource = db.Departments
.ToList()
.OrderBy(department => double.Parse(department.DepartmentNumber));
Run Code Online (Sandbox Code Playgroud)
您从应用程序内存中的数据库中获取所有数据(通过调用ToList,它请求立即执行查询。)然后在内存中进行排序。
下面的查询不起作用的原因:
var datasource = (from x in db.Departments
orderby double.Parse(x.DepartmentNumber)
select x).ToList();
Run Code Online (Sandbox Code Playgroud)
事实是double.Parse 不能在sql中转换为等价的函数,然后将整个sql查询提交到数据库执行。
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |