在执行 DataBind 之前如何对 DataSet 进行排序?

2024-01-25

我有来自数据库的数据,格式为DataSet。然后我将其设置为DataSource在执行之前的网格控件DataBind()。我想排序DataSet/DataTable在一列上。该列在数据库中排序太复杂,但我希望可以像对通用列表进行排序一样对其进行排序,即使用 deligate。

这是可能的还是我必须将其转移到不同的数据结构?

Edit我无法得到任何适合我的答案,我想因为我正在使用.Net 2.0。


由于 DataTable(和 DataView)排序的工作原理,您不能直接使用委托方法。一种解决方法是在数据表中添加一列来表示顺序,并根据所需的顺序设置值(每行)。然后,您可以向该新列的视图添加排序。例如(为了简洁,使用 LINQ 进行排序):

var sorted = table.Rows.Cast<DataRow>().OrderBy(row => your code);
int sequence = 0;
foreach(var row in sorted)
{
    row["sequence"] = sequence++;
}

(如果您有类型化数据集,那么我认为您不需要 Cast 步骤,否则您将使用类型化 DataRow 子类)

[编辑以包含 2.0]

在 2.0 中(即没有 LINQ 等)你可以使用List<T>进行排序 - 有点啰嗦,但是:

        List<DataRow> sorted = new List<DataRow>();
        foreach(DataRow row in table.Rows)
        {
            sorted.Add(row);
        }
        sorted.Sort(delegate(DataRow x, DataRow y) { your code });
        int sequence = 0;
        foreach(DataRow row in sorted)
        {
            row["sequence"] = sequence++;
        }

(同样,如果您使用的是类型化数据集,请替换 DataRow)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在执行 DataBind 之前如何对 DataSet 进行排序? 的相关文章

  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么
  • Couchbase v6.0:更新文档内容而不重置文档过期(TTL)值

    我正在使用 Net Couchbase SDK CouchbaseNetClient Package 创建一个新文档 并在执行此操作时设置该文档的到期值 到期 TTL 值设置正确并且工作正常 问题陈述 创建文档后 我需要更新我使用 N1QL
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 对于 HTTPS,Request.UrlReferrer 为 NULL

    我在用 Request UrlReferrer AbsoluteUri 在我的项目中获取托管我的应用程序的 URL 如果我从 http 主机重定向 我可以获得 URL 但如果我从 https 主机重定向 我将得到 null 我怎样才能得到
  • 是否可以修改 PDF 表单字段名称?

    情况是这样的 我有一个 PDF 其中包含自动生成的 pdf 表单字段名称 问题是这些名称不太用户友好 它们看起来像 topmostSubform 0 Page1 0 Website Address 0 我希望能够更改它们 使它们类似于 We
  • 编译器值类型解析和硬编码“0”整数值

    首先 介绍一些背景知识 阅读问题并接受答案发布在这里 https stackoverflow com questions 8352260 why does the sqlparameter name value constructor tr
  • 应用服务中的内存利用率是否可​​以提高

    我有一个相当简单的 Web 应用程序在 Azure 的 B1 服务计划中的应用服务计划中运行 该计划提供 1 个 CPU 和 1 75GB RAM CPU 使用率永远不会超过 5 左右 内存使用率永远不会低于 52 我确实停止了计划中唯一运
  • 如何从 ReadOnlySpan 复制到 Array

    我的班级有一个财产public byte Location get new byte 30 我希望能够从 a 中填充它ReadOnlySpan
  • 为什么即使当我尝试从工作线程更改 UI 时,同步上下文仍为空?为什么即使我不这样做,工作线程也会在 UI 线程上等待?

    我在表单上有一个按钮 点击它我调用FooAsync并在完成时阻止 UI 线程 下面是代码和我的问题 using System using System Diagnostics using System Threading using Sys
  • 使 .net web api 队列请求以“单线程”方式运行

    我们有一个 c net Web API 服务调用代码 该代码无法一次处理多个数据库请求 该系统适用于需求相对较小的账单在线支付 我们无法控制代码来进行可以解决问题的更改 另一个使用相同代码的小组使用 WCF API 和服务配置将并发请求限制
  • 实体框架代码首先保存后不延迟加载

    我的数据库中有一个查找表和一个数据表 我将使用性别和人物作为例子 假设性别表如下所示 Id Code 1 Male 2 Female 人员表如下所示 Id Name GenderId 1 Bob 1 2 Jane 2 我首先在 EF 代码中
  • 模拟 WCF 客户端代理的最佳方法

    有没有办法使用 Rhino 模拟框架来模拟 WCF 客户端代理 以便我可以访问 Channel 属性 我正在尝试对 Proxy Close 方法进行单元测试 但由于代理是使用抽象基类构造的ClientBase
  • 删除 TableLayoutPanel 中的特定行

    我有 TableLayoutPanel 我以编程方式添加行 用户基本上选择一个属性 然后与一些控件一起显示在表中 我想我在这里有一个一般性的理解问题 我会尽力解释它 每行中的控件之一是 删除 按钮 该按钮应该删除它所在的行 我所做的是将事件
  • 如何检查 NTAccount 对象代表组还是用户?

    使用返回的访问规则时 GetAccessRules True True GetType System Security Principal NTAccount 如何判断每个规则中引用的 NTAccount 对象是用户帐户还是组 Update
  • Lazy 实现和 .NET 泛型

    我正在寻找进行延迟初始化的方法并发现Lazy
  • 检查 DBNull 会引发 StrongTypingException

    我正在使用数据集从数据库中提取数据 一行中的一个字段是NULL 我知道这个 但是 以下 vb net 代码会抛出StrongTypingException 在数据集设计器中自动生成的 get SomeField 方法中 If Not IsD
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的

随机推荐

  • 从 pandas xlsxwriter 打开 Excel (XLSX) 文件时出错

    在 MS Excel 中打开 XLSX 文件时 会出现一个错误对话框 我们发现 filename xlsx 中的某些内容存在问题 单击 是 尝试恢复会产生以下 XML 错误消息
  • 使用 Gson 或 Jackson 将 JSON 字符串展平为 Map

    例如 id 123 name Tom class subject Math teacher Jack 我想要得到Map
  • 为什么这个可编辑组合框中的插入符号超出了范围?

    我正在尝试基于 msdn 示例构建组合框模板 但出现奇怪的错误 更准确地说 如果我在普通组合框中编写长文本 则文本会向左移动 并且我们始终会看到插入符号 然而 在 msdn 示例中 当我编写长文本时 插入符正在移到组合之外 这是它的样子 当
  • 如何开始学习 JavaScript [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在 Linux oracle sunos 等技术支持方面经验丰富 但如果我说脚本 我对 bash 知
  • 如何在 Google 地图 V2 中启用特定路线的路况信息?

    Google 导航仅显示给定路线的交通图层 和GoogleMap setTrafficEnabled true 我会获取整个地图的交通信息 我知道如何从 Google Directions 中绘制路线的折线 但如何仅打开该路线的交通图层 从
  • Spark Cassandra 连接器 - where 子句

    我正在尝试使用 Spark 和 Datastax 发布的新连接器对存储在 cassandra 中的时间序列数据进行一些分析 在我的架构中 分区键是仪表 ID 我只想对特定系列运行 Spark 操作 因此我需要按仪表 ID 进行过滤 然后我想
  • 每当一个或其他字段模型发生变化(每次击键)时,使用 Angular 指令验证密码并确认密码字段

    我目前有一个 Angular 指令 可以验证密码并确认密码字段是否匹配 它在某种程度上有效 当密码不匹配时它确实会抛出错误 但是 在您在两个字段中输入数据之前 它不会引发错误 如何才能在一个字段或另一个字段中输入数据时立即抛出密码不匹配的错
  • 设计视图中底部导航的实时视图不显示图标和菜单资源

    enter image description here 2 2 The bottom navigation view is not showing the icons in it in the live design view of th
  • 如何使用 C# 在 WPF 运行时动态添加文本框控件

    我是 WPF 新手 我想在运行时单击 生成 按钮时为每一行创建 3 个文本框 请帮我 自动创建的文本框 https i stack imgur com 21blt png Code behind private List
  • 如何从 QDialog 的 const 方法显示 QMessageBox?

    我已经子类化了QDialog我创建了一个const方法 因为我想绝对防止修改我的实例 现在 如果发生某个错误 我想使用QMessageBox来显示它 但我不能使用this作为消息框的父级 因为this is const 这是一个遗憾 根据文
  • 在 iOS 中创建 RGB CVOpenGLESTexture

    我正在尝试创建一个3通道 CVOpenGLESTexture in iOS 我可以成功创建一个单通道通过指定纹理kCVPixelFormatType OneComponent8 in CVPixelBufferCreate and GL L
  • 使用 PDFBox 获取文本行的位置

    我正在使用 PDFBox 从 pdf 中提取信息 我当前尝试查找的信息与该行中第一个字符的 x 位置相关 但我找不到任何与如何获取该信息相关的信息 我知道 pdfbox 有一个名为 TextPosition 的类 但我也无法找到如何从 PD
  • VBA Excel制作连续数字数组

    我目前正在使用 VBA for Excel 但实际上只精通 Matlab 对于我的工作来说 出于时间目的 保留在 vba 的内存中 而不是 excel 的工作表 非常重要 我需要做的是创建一个连续整数数组 比如 4000 到 5000 在
  • Vue.js 计算属性在通过事件传递时会失去其反应性

    我有一个Modal我的主应用程序中的组件 每当必须显示模式时 它都会通过事件获取传递的内容 模态内容始终是一个列表 其中包含与每个项目关联的操作 例如 选择 或 删除 Vue component modal data return show
  • JavaScript onHover 事件

    有没有规范的方法来设置JSonHover事件与现有的onmouseover onmouseout和某种计时器 或者当且仅当用户将鼠标悬停在元素上一定时间时触发任意函数的任何方法 像这样的事情怎么样
  • 如何摆脱TListBox垂直滚动限制?

    我已经实现了日志查看器使用TListBox在虚拟模式下 http blog synopse info post 2011 08 20 Enhanced Log viewer 它工作正常 对于我编写的所有代码 按预期显示内容 我什至轻松添加了
  • SSE 寄存器返回且 SSE 禁用

    我处于以下情况 我正在为不允许 SSE 指令的内核编写代码 我需要进行浮点运算 我正在针对 x86 64 平台进行编译 这是说明该问题的代码示例 int main int argc char argv double d 0 0 dbase
  • Google Play 游戏服务警报:“检测到不正确的实施”

    我最近在 Google Play 开发者控制台中收到了有关我的游戏的以下警报 检测到不正确的实施 您的游戏错误地实现了以下 Play 游戏服务 成就 它提供了一个链接帮助页面 https support google com googlep
  • 分区表视图索引选择突出显示

    我觉得这应该是一个简单的属性 但我一生都在寻找 但找不到答案 我的表格右侧有一个表格视图索引 选择后 所有内容都会变灰 我想模仿 iPod 应用程序 当选择索引本身时 它是半透明的 alpha 可能为 0 4f 有任何想法吗 据我发现 这可
  • 在执行 DataBind 之前如何对 DataSet 进行排序?

    我有来自数据库的数据 格式为DataSet 然后我将其设置为DataSource在执行之前的网格控件DataBind 我想排序DataSet DataTable在一列上 该列在数据库中排序太复杂 但我希望可以像对通用列表进行排序一样对其进行