如何获取Dataset中的列名 对比列名时代码占位符X应如何替换
问题解答
一、获取Dataset中列名的方法
Dataset中的列名存储在对应DataTable的Columns集合中,每个DataColumn对象的ColumnName属性就是列名,示例代码如下:
// 示例:获取Mysql数据集组中第i个数据集的第i个表的所有列名 List<string> columnNames = new List<string>(); foreach (DataColumn col in Mysql[i].Tables[i].Columns) { columnNames.Add(col.ColumnName); }
如果需要对比两个表的列名是否一致,分别提取两个表的列名列表,排序后逐位对比即可。
二、代码占位符X的填写说明
你当前的代码逻辑是遍历行对比字段值,和你要对比列名的需求不匹配。如果确认是要对比两个表同一行同一列的字段值:
- 如果你知道具体列名,X位置填
["列名"],例如["user_id"] - 如果你通过索引指定列,X位置填
ItemArray[列索引],例如ItemArray[0]
另外你现有代码存在3处明显错误需要修复:
- 循环行的条件
j<=rowCount会触发索引越界,行索引范围是0 ~ rowCount-1,需要改为j < rowCount - if分支后直接跟代码块没有加
else关键字,会导致无论判断是否成立,后面的代码块都会执行 Mysql[i].Tables[i]的写法默认第i个Dataset里至少有i+1个表,索引越界风险极高,建议明确指定表索引或者先判断表数量
内容的提问来源于stack exchange,提问作者AsNets
相关产品推荐
相关产品推荐

