当前位置:编程学习 > C#/ASP.NET >>

asp.net 虚拟表

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                int ClassID = Convert.ToInt32(ds.Tables[0].Rows[i][0].ToString().Substring(1,3));

                String strSql2 = string.Format("SELECT CLASSNAME FROM MYWEBPART3.DBO.YM_CLASS WHERE CLASSID = " + ClassID + "");

                ds2 = this.sQLDbHelper.Query(strSql2);          
            }

以上是我的部分代码

在一个循环里有2个变量一个是ClassID 另外一个是ds2里面的一个string值

我想再定义一个虚拟table然后循环向table里面插入数据,这个table应该怎么样去定义?

追问:public DataTable  GetHotTag()
        {
            DataSet ds = null;           

            DataSet ds2 = null;

            // 定义表

            DataTable dt = new DataTable();

            // 添加列

            dt.Columns.Add(new DataColumn("ClassID", typeof(int)));

            dt.Columns.Add(new DataColumn("CLASSNAME", typeof(string)));

            // 创建行

            DataRow dr = dt.NewRow();

            String strSql3 = string.Format("select top 20 classid from cnword group by classid order by count(classid) desc");

            ds = this.sQLDbHelper.Query(strSql3);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                int ClassID = Convert.ToInt32(ds.Tables[0].Rows[i][0].ToString().Substring(1,3));

                String strSql2 = string.Format("SELECT CLASSNAME FROM MYWEBPART3.DBO.YM_CLASS WHERE CLASSID = " + ClassID + "");

                ds2 = this.sQLDbHelper.Query(strSql2);              

                //objArr是一个object对象数组,用于给行赋值

                object[] objArr = new object[] { ClassID, ds2.Tables[0].Rows[0][0].ToString() };

                // 行赋值

                dr.ItemArray = objArr;               

            }

            // 添加行到表中

            dt.Rows.Add(dr);

            return dt;    
      
        }

以上是我的DAL层完整代码,现在有一个问题就是

// 行赋值

 dr.ItemArray = objArr;

永远在给dr的第一行进行赋值

我这个循环是20次,应该出现“总共20条”对应的数据

但是这个代码执行玩之后我的DT最终显示的数据是“第20条”数据,

虽然我想可能改动一下例如在循环里面写ROWS【i】【0】,之类的来循环控制行数,

不过我不知道语法怎么写 呵呵,麻烦告诉下语法,或者我的想法是错误的话请指出,谢谢

答案:// 定义表

DataTable dt = new DataTable();

// 添加列

dt.Columns.Add(new DataColumn("ClassID", typeof(int)));

dt.Columns.Add(new DataColumn("CLASSNAME", typeof(string)));

// 创建行

DataRow dr = dt.NewRow();

//objArr是一个object对象数组,用于给行赋值

object[] objArr = new object[]{32, "abc"};

// 行赋值

dr.ItemArray = objArr;

// 添加行到表中

dt.Rows.Add(dr);

 

行赋值的操作放到循环中做就可以了

上一个:asp求1-10阶乘
下一个:asp.net中我把textbox的 AutoPostBack属性设置为 true 时,button的 点击事件 就不执行了,总是 在第二次点击时,才执行点击事件 代码,是怎么回事?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,