我正在从不同的值动态生成数据表,例如列出并将其绑定到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号。动态生成的列和行。
答案 0 :(得分:0)
某些伪代码(在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"
答案 1 :(得分:0)
您是否尝试在列中插入值并对其进行排序?
我认为你使用错误的数据结构来做到这一点。 DataTable应该用于"表"。
我认为您应该创建一个包含List<List<string>>
对象的类。它会有你想要的行为。从一个&#34;列中删除&#34;,添加到另一个列并对整个列表进行排序。
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
对象来填充某种属性。您可以使用DataTable
作为参数创建一个解析函数来创建List< List<string> >
。