http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 13508|回复: 11

[其他] 访问数据库,不重复的将数据存到一个数组。

[复制链接]
发表于 2014-7-1 10:08:50 | 显示全部楼层 |阅读模式
5金钱
访问数据库,不重复的将数据存到一个数组。
[C#] 纯文本查看 复制代码
       public string[] Program(string str)
        {
            DB db = new DB();
            DataTable dt = db.reDt(str);  
            string[] Program=new string[20];
            for (int m = 1; m <= dt.Rows.Count - 1; m++)
            {
                for (int j = 1; j <= dt.Columns.Count-1; j++)
                {   
                    bool flag = false;
                    for (int q = 0; q < 20; q++)
                    {
                        if (dt.Rows[m][j].ToString() != Program[q])
                        {
                            flag = true;
                        }
                    }
                    int i = 0;
                    if (flag==true)
                    {
                         Program[i] = dt.Rows[m][j].ToString();
                         i = i + 1;
                         flag = false;
                    }
                 
                }
            }            
            return Program;    
        }

感觉上去没错,但是出来结果不对!!

最佳答案

查看完整内容

我上面是一条记录的不同节目个数, 如果是不重复的节目名字, string[] kk = jm.Split(','); 数组KK里面有啊?! for (int i=0;i


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-7-1 10:08:51 | 显示全部楼层
我上面是一条记录的不同节目个数,
如果是不重复的节目名字,    string[] kk = jm.Split(',');  数组KK里面有啊?!
for (int i=0;i<kk.count;i++) messagebox.show(kk[i]);
回复

使用道具 举报

发表于 2014-7-1 10:18:31 | 显示全部楼层
搞这么麻烦干麻?

试试这招

SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。

select DISTINCT  姓名  from 报名表
回复

使用道具 举报

发表于 2014-7-1 10:18:34 | 显示全部楼层
直接用个Froeach就完事了。这个看着麻烦了点,可以改进了。代码量少了就好找问题了。另外你结果不对是什么个情况,错在什么地方感觉。根据问题比较好长一些。
回复

使用道具 举报

 楼主| 发表于 2014-7-1 10:38:43 | 显示全部楼层
dyyyj 发表于 2014-7-1 10:18
搞这么麻烦干麻?

试试这招

我这数据库表示一天的节目量,列有375列,每列名又不一样。要是用您刚说的,怎么操作。
回复

使用道具 举报

发表于 2014-7-1 11:36:48 | 显示全部楼层
能说的具体点吗?
回复

使用道具 举报

 楼主| 发表于 2014-7-1 14:54:19 | 显示全部楼层
dyyyj 发表于 2014-7-1 11:36
能说的具体点吗?

360截图20140701145308514.jpg
如图所示,列的话是一天的时刻。每一条记录的话是一天的收看情况。现在要获取一个用户总共看了几个节目。
回复

使用道具 举报

发表于 2014-7-1 16:05:16 | 显示全部楼层
以一条记录为例.如果是整个表,要做循环


string jm=dt.Rows[0][1].ToString()  /jm为节目变量

for (int j = 1; j <= dt.Columns.Count-1; j++)
   {
                 if (! jm.Contains(dt.Rows[0][j].ToString() ))
                 {
                    jm=jm+","+dt.Rows[0][j].ToString();
                 }
   }


//退出循环后,jm里面就有今天所看的节目。之间用“,” 间隔

              string[] kk = jm.Split(',');
            int a = kk.Count(); //a 为节目数

这是一个很简单的逻辑。怎么会。。。?
回复

使用道具 举报

 楼主| 发表于 2014-7-1 16:28:27 | 显示全部楼层
dyyyj 发表于 2014-7-1 16:05
以一条记录为例.如果是整个表,要做循环

要是要查询看了哪些节目。。。刚没说准确。不是节目个数
回复

使用道具 举报

发表于 2014-7-1 16:43:04 | 显示全部楼层
没看懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 12:47

© 2014-2021

快速回复 返回顶部 返回列表