在 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类型