【问题标题】:Move values from one column to another in datatable在数据表中将值从一列移动到另一列
【发布时间】:2016-01-22 18:50:10
【问题描述】:

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

请考虑以下输入(显示在 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 个编号。动态生成的列和行。

【问题讨论】:

  • RadGrid 中的列被设计为数据列,类似于 SQL 数据库中的列。它们不是为此用途而设计的。您可能需要考虑使用其他一些控件(或多个 RadGrid 控件)来实现此目的。

标签: c# vb.net datatable multiple-columns


【解决方案1】:

一些伪代码(在 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"

【讨论】:

    【解决方案2】:

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

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

    我认为您应该创建一个带有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&lt; List&lt;string&gt; &gt; 作为参数来创建DataTable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      相关资源
      最近更新 更多