中易网

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

答案:4  悬赏:60  
解决时间 2021-01-11 10:05
怎用遍历dataset取出其中一部分字段的值?
最佳答案
神问题和神回答
问题是问的取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()
你也考虑考虑嘛,所有数据都倒得出来,加个条件,就不出来,也不可能的,除非就是条件没执行呗,数据格式不对呗这些。
全部回答
楼上的有问题。(在上面修改)
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就是你要的集合。
我暂时保留我的看法!
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; //返回集合
呵呵,刚好十行代码。不是高手。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怒战天下副本大厅玩法攻略 怒战天下副本大厅
中石化三岭村加油站地址在哪,我要去那里办事
大庆长途汽车到白城
考虑是代表以后的事情吗?
美借单期,分期借款打联系人电话么?
天津市南开区司法局体育中心司法所怎么去啊,
BI.Shemale,TG,TS,TV,CD 都是什么意思?
为什么老婆总喜欢看微信
与《时之歌》同类的项目有哪些?《瓦尼姆之诗
东良淀村地址在什么地方,想过去办事
有没有人可以给我做一个杭州到青海湖自驾游的
大话2小熊怎么加点
鸟叔是怎么来的
大佬求唐风遗韵专辑的全部歌曲,麻烦您给发一
我家母猫被别的公猫追不见了怎么办
推荐资讯
吴川梅禄吃海鲜哪里好
长20.3厘米,宽12.3厘米是多少寸的屏幕
怎么用手柄玩拳皇
第一次性接触,由于太紧男朋友没
谁有《超级聊天术:跟谁都聊的来》
8厘钢板指什么
在LV专卖店购买了包包后可以更换款式吗?
z向钢与普通建筑用钢材相比,有什么优点?什么
赵氏女状告严监生故事简介
亲戚家明天搬新房今天大姨妈就来了能去她家吗
如何搭建san switch 环境java
前任2是不是有关谷神奇
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?