在数据表中将值从一列移动到另一列

本文关键字:一列 移动 数据表 | 更新日期: 2023-09-27 18:31:39

我正在从不同的值动态生成一个数据表,例如列表并将其绑定到radgridview。

请考虑以下输入(显示在辐射网格视图中)

col1|col2
---------
A   |  D
A   |  D
B   |  D
B   |  E
C   |  E
D   |

上面的输出是错误的,因为 D 在两列中,即 col1 和 col2。

我想要以下格式的输出。

col1|col2
---------
A   |  D
A   |  D
B   |  D
B   |  D
C   |  E
    |  E

请参阅上面的 gridview 输出,即现在 D 被移动到另一列以遵循顺序。我想以同样的方式在列之间移动值,无论单词是什么,但"以相同的字母开头"都应该在同一列下。

谁能帮我解决这个问题。任何 C# 或 vb.net 代码都可以提供帮助。

请注意,数据表可以有 n 个动态生成的列和行。

在数据表中将值从一列移动到另一列

一些伪代码(在 C# 中)可能是:

String sql = String.Empty;
String candidateDataValue = // assign it from wherever
if ((candidateDateValue.StartsWith('A') ||
    (candidateDateValue.StartsWith('B') ||
    (candidateDateValue.StartsWith('CA'))
{
    String sql = "INSERT INTO TABLE (col1) VALUES (:candidateDataValue");
}
else
{
    String sql = "INSERT INTO TABLE (col2) VALUES (:candidateDataValue");
}
// Now insert the record using "sql"

您正在尝试在列中插入和排序值?

我认为您使用了错误的数据结构来做到这一点。数据表应该用于"表"。

我认为你应该创建一个带有List<List<string>>对象的类。它将具有您想要的行为。从一个"列"中删除,添加到另一个"列"并对整个列表进行排序。

List<List<string>> Table;
//Table Filled  with
col1|col2
---------
A   |  D
A   |  D
B   |  D
B   |  E
C   |  E
D   |
var str = Table[0][5];
Table[0].removeAt[5];
Table[1].add(str);
Table[1].Sort();

结果:

col1|col2
---------
A   |  D
A   |  D
B   |  D
B   |  D
C   |  E
    |  E

更新:

如果需要DataTable对象来填充某种属性。您可以创建一个解析函数,以使用List< List<string> >作为参数来创建DataTable