中易网

怎用遍历dataset取出其中一部分字段的值?

答案:4  悬赏:60  
解决时间 2021-01-11 10:05
  • 提问者网友:wodetian
  • 2021-01-10 18:14
怎用遍历dataset取出其中一部分字段的值?
最佳答案
  • 二级知识专家网友:撞了怀
  • 2021-01-10 19:37
神问题和神回答
问题是问的取DataSet 第 2,3,7列的值?存入List集合?
首先DataSet包含的表格里面才有行列概念,它自身哪有第几第几列,其次问的是列,但是有好多回答都是取的是行,行也就算了,关键是第2,3,7 索引应该是1,2,6
你们直接大大方方的写个2,3,7算是啥意思啊
其次,数据取出来了,你们用List来接受,你们居然真的打算是把这几列的数据首尾相接,给他拼出个8*3=24个string吗?你们觉得这可能这样吗?
这貌似取的是List 的节奏吧。追问感觉您好厉害,可以给我写个代码么,枫之伤NO1回答的是不是把索引改一下就可以了?还有后面的问题,放到集合中就拼接了 不换行?没有按原来的列的格式吗?我要放到集合中然后导出到文本中,格式要和excel里面一样,只不过导出了部分列,用|分割,可不要全部在每列尾巴后面拼接呀!那就不是列了追答早一些说的详细点多好啊 

List result = new List();//这个集合用来存储结果字符串
            DataSet dt = new DataSet();//这里应该是从excel导入获取的dataset
            DataTable dtsource = dt.Tables[0];//假如数据存放在dataset的第一个表中
            for (int i = 0; i < dtsource.Rows.Count; i++)
            {
                string itemstring = string.Empty;
                itemstring += dtsource.Rows[i][1].ToString()+"|";//第二列
                itemstring += dtsource.Rows[i][2].ToString()+"|";//第三列
                itemstring += dtsource.Rows[i][6].ToString();//第七列
                result.Add(itemstring);
            }
            //下面测试写入文本

            using(System.IO.StreamWriter sw = new System.IO.StreamWriter("D:\1.txt"))
            {
                foreach (string item in result)
                {
                    sw.WriteLine(item);
                }
            }追问果然是大神级别的 最后一个问题 指定的列取出来之后 肯定是很多行的 如果我第一列中其中一行内容为chck,那怎么根据chck取出同一行的其他列数据输出到文本中?根据chck把QQQQ,EEEEE都输出?chck是临时变量 不固定

追答稍微修改下for循环,加个判断
  for (int i = 0; i < dtsource.Rows.Count; i++)

            {

                if (dtsource.Rows[i][1].ToString() == "chck")//就加这个条件 这个==后面的内容,你可以换成你需要匹配的变量就行

                {

                    string itemstring = string.Empty;

                    itemstring += dtsource.Rows[i][1].ToString() + "|";//第二列

                    itemstring += dtsource.Rows[i][2].ToString() + "|";//第三列

                    itemstring += dtsource.Rows[i][6].ToString();//第七列

                    result.Add(itemstring);

                }

            }追问大神您是不是不小心手抖了一下 怎么导出来是空的呀?追答大哥,你是不是C#刚搞吧,要不就是你数据源里,这个值他有空格
你走的是纯复制路吧 if语句里面
dtsource.Rows[i][1].ToString().Trim() == "chck" 这句加个Trim()
你也考虑考虑嘛,所有数据都倒得出来,加个条件,就不出来,也不可能的,除非就是条件没执行呗,数据格式不对呗这些。
全部回答
  • 1楼网友:深街酒徒
  • 2021-01-10 20:58
楼上的有问题。(在上面修改)
DataTable table=dataset.Tables[0];
List re=new List();
for(int i = 0;i< 8;i++)
{
if(i == 2 || i==3 || i == 7)
{
for(int j=0;j< table.Rows.Count;j++)
{
re.Add(table.Rows[i][j]);
}
}
}
re就是你要的集合。
  • 2楼网友:不甚了了
  • 2021-01-10 20:29
我暂时保留我的看法!
  • 3楼网友:狂恋
  • 2021-01-10 20:06
DataTable table=dataset.Tables[0]; //定义一个DataTable对象为数据集中的第一个数据表
List re=new List(); //定义一个List集合对象
for(int i=0;i< table.Rows.Count;i++) //遍历数据表
{
if(i==2||i==3||i==7)
{
re.Add(table.Rows[i][0]); //如果符合条件,就插入到集合中
}
}
return re; //返回集合
呵呵,刚好十行代码。不是高手。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息