目前已经有多个数组如期号、作者、标题。期号-----------------作者-----------------标题2002-01------------a----------------------12002-01-----------b----------------------22002-01-----------c----------------------1.                      .                       .2002-02----------------------------------   this.m_yearVol = new string[]  ----------期号数组
    {
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01","2002-01","2002-01","2002-01",
     "2002-01","2002-01",期号数组里的数据都是重复的。刊物每一年每一期有多篇文章,比如上面给出的部分数据:2002-01重复了32次,那么就表示02年第1期有32篇文章。作者和标题数组里的数据都是单一的,包含的是几年当中每一篇文章的标题和作者,作者有可能为空。问题:1:如果我把所有的数据放到1个多维数组里(就象1个数据库中的表一样),可行吗?如果可行,那么如何根据条件显示数据呢?2:还是按多个一维数组的方法。如果我点的是2002年第一期(TreeView中),那么用什么方法来显示这一期当中所有文章的信息呢?显示这一期所有文章的信息需要用什么控件呢?dataGridView还是ListView呢?区别在哪里?请讲具体点,最好能给点代码,谢谢!要是我有什么地方没说清楚,请大家指出来

解决方案 »

  1.   

    我现在已经把这几个数组联系上了,写好了算法。按照这几个一维数组的思路,我如何把这几个数组中的数据都显示在ListView或dataGridView中呢?因为期号数组中数据都是重复的,比如2002-01,而我又不会重复数据只显示一次,所以TreeView中的数据是我自己加上去的。如:        this.treeView1.Nodes.AddRange(new TreeNode[]
                    {
                            new TreeNode("第1期"),
                            new TreeNode("第2期"),
                            new TreeNode("第3期"),
                            new TreeNode("第4期"),
                            new TreeNode("第5期"),
                            new TreeNode("第6期"),
                            new TreeNode("第7期"),
                            new TreeNode("第8期"),
                            new TreeNode("第9期"),
                            new TreeNode("第10期"),
                            new TreeNode("第11期"),
                            new TreeNode("第12期")
                    });            算法:this.VolSplit = new int[]    //2年当中24个月,每个月文章的篇数,如32表示2002年第一期有32篇文章
                {
                     32, 28, 27, 26, 30, 28, 29, 24, 27, 27, 26, 27, 
                    28, 25, 26, 25, 26, 25, 27, 27, 25, 27, 29, 25            };
                this.VolSum = new int[49];  //篇幅的总位置
                this.VolSum[0] = 0;
                for (int i = 0; i < 49;i++ )
                {
                    VolSum = VolSum[i - 1] + VolSplit[i - 1];
                }
      

  2.   

    标题部分数据: this.m_title = new string[]
    {
    "恰是一年春好处",
    "新千年已获开门红 银行卡必乘千里马",
    "电子货币的社会化功能与发展",
    "加强安全防范手段确保银行卡交易安全",
    "中国银行卡产业化发展问题初探",
    "必须重视银行卡业务人员队伍建设",
    "切莫让银行卡的风险管理走入误区",
    "中国金融电脑杂志社特约编辑工作会议在京召开",
    "牡丹友邦万事达联名卡在沪首发",
    "工商银行发行牡丹VISA冬奥国际借记卡",
    "华夏银行网络银行业务开展情况的调查报告",
    "香港电子银行发展的启示",
    "发展电子银行 提高银行竞争力",
    "呼叫中心在我国金融领域中的应用",
    "让信用融入生活",
    "以效益和安全并重 大力发展贷记卡业务",
    "对德阳市银行卡业务的调查",};
      

  3.   

    如何得到我点击treeview的子节点是第几个呢?要的是它的ID值,不是text.
    请问用什么方法把这几个一维数组中的数据都显示在datagridview或listview中呢?
      

  4.   

    建议你
    1.存到数据库中用SQL查找
    2.在内存中用DataTable和DataRelation像数据库中一样存储数据 建立关系
    3.可以尝试用LINQ查询简化工作量TreeNode是有个Index值的 可以知道是第几个
    要把几个一维数组都显示出来 数组元素之间至少应该有关系吧
      

  5.   

    TO:qthai1:这个是在winform下开发的一个软件,不能让每个人的电脑上都装有数据库吧,所以这个方法不可行。
    2:如何实现呢?请给点具体的代码,谢谢!
    3:没看明白
    关于treenode的index属性,我看到了,谢谢。
      

  6.   

    奇怪,为什么知道数据库,怎么不用数据库,设计几个数据表,
    然后用TreeView以及DataGridView显示,通过SQL语句查询建立TreeView中单项与DataGridView的显示内容的关系。
    你说不能每个人的电脑上都装有数据库,为什么不能?可以不用SQLServer或者Oracle等数据库,怎么也可以安装Access或者FoxPro等吧。
    你怎么不说,“不能让每个人的电脑上都装我开发的这个软件吧”,如果可以,那开发这个软件有什么用。
      

  7.   

    你可以按照设计数据库的方法 设计几个DataTable
    比如一个DataTable包含这样几列 AuthorID,AuthorName 作者ID 作者姓名 以及其他关于这个作者的信息
    另一个DataTable包含JournalID JournalDate 期刊ID 期刊时间等关于期刊的信息
    然后在定义一个DataTable 包含AuthorID,JournalID两列 表示单个作者和单个期刊的关系
    然后建立把几个DataTable放到一个DataSet里 设置DataRelation 这样就是你自己模拟数据库来操作了 不过大宗数据还是用数据库的好
    如果不能每个用户都建立数据库 可以尝试用一个数据库服务器 用WebService来连接数据库