在 datagridview1 中添加具有全新类型的 SQL Server 数据库数据的新列

Posted

技术标签:

【中文标题】在 datagridview1 中添加具有全新类型的 SQL Server 数据库数据的新列【英文标题】:Add new column in datagridview1 with a completely new sort of SQL Server database data 【发布时间】:2022-01-01 18:01:57 【问题描述】:

我使用 SQL Server 数据库和 C# 创建了一个小程序。

我连接到数据库并对所有数据进行排序并在datagridview1中显示它没有任何问题。

我的代码:

enter image description here

我 otrzymuje wynik:

enter image description here

现在我的问题是:如何在 datagridview1 中添加一个包含全新类型的 SQL Server 数据库数据的新列?

【问题讨论】:

【参考方案1】:

很明显,排序顺序是 SQL 表达式的一部分,您的意思不是,因为您肯定已经知道 (?) 而是更改它的排序方式,即列的排序规则。谢天谢地,这是完全支持的:

https://docs.microsoft.com/en-us/sql/relational-databases/collations/set-or-change-the-column-collation?view=sql-server-ver15

【讨论】:

【参考方案2】:

有几种方法可以做到:

    创建一个复杂的 SQL 查询,它将根据需要对数据进行分组,使用 Joins 和其他数据联合方式。

    最简单和最糟糕的方法是手动扩展数据表:

    dataTable.Columns.Add(new DataColumn("newColumn", typeof(string)));
    

这将自动刷新表单上的 DataGridView。然后您需要手动将新数据添加到新的 DataTable 列中。

    我更喜欢使用基于模型的 dataGridView。您需要创建一个类 - 这将代表您的模型。像class Person 加上属性:Name, Age, etc. 然后将此列表设置为数据源。

     List<Person> listOfPersons = new();
     dataGridView1.AutoGenerateColumns = true;
     dataGridView1.DataSource = new BindingSource()  DataSource = listOfPersons;
    

主要问题 - 您需要将数据库数据解析为模型格式。 实际上,这就是 ORM(对象关系映射)有用的地方。有一些现成的解决方案,例如Dapper。它会简化你的生活)

【讨论】:

因此,我想添加一个单独排序的新列,因为该列将立即基于相同的数据,但会有不同类型的排序,例如:列“ Weight" 仅显示值: 30 排序,我不知道如何正确处理

以上是关于在 datagridview1 中添加具有全新类型的 SQL Server 数据库数据的新列的主要内容,如果未能解决你的问题,请参考以下文章

dataGridView1添加的行数 运行的时候为啥不能直接显示出来?

怎么添加datagridview 单元格内容 short 类型变成double类型

如何在C#中 禁止 dataGridView 自动添加行

winform中datagridview怎么添加行之后将焦点选中在新添加的行?

DataGridviewi 类型

在DataGridView中获取用户添加的行