各位:我现在就想用dataset和dataadapter来把表遍历,希望做个循环,我以前是做asp的,
效果是:只要记录不为空,就取每个记录的level字段值操作。level为int型。请看下面代码。
其中第8行报错,我知道肯定是表示错误,怎么样才能把level字段取出来??
如何表示出记录不为空的循环?这个效果我还没加进去。如果给我代码将感激不尽!
1行  SqlConnection myconnection=new SqlConnection(ConfigurationSettings.AppSettings["sqlconnectionstring"]);
2行  String cmdText="select * from newscata order by rootid";
3行  SqlDataAdapter dataadapter=new SqlDataAdapter(cmdText,myconnection);
4行  DataSet dataset=new DataSet();
5行  dataadapter.Fill(dataset,"newskinds");
6行  newskindlist.DataSource=dataset.Tables["newskinds"].DefaultView;
7行  String tempcataStr=" ||";
8行  int level="level";
9行  int i;
10行  for (i=1;i<(level-1);i++)
 {
 tempcataStr=tempcataStr+"|";
 }
 tempcataStr=tempcataStr+"<a href=newskind.aspx?cataid="+"id"+">"+"title"+"</a><br>";
 newskindlist.DataTextField=tempcataStr;
             newskindlist.DataBind();
 myconnection.Close();

解决方案 »

  1.   

    還是asp的編程方法阿,建議用datagrid控件比較好。
      

  2.   

    foreach( DataRow dr in dataset.Table["newskinds"].Rows)
    {
       if(dr["level"] != System.DBNull)
          level = dr["level"].ToString();
    }
      

  3.   

    bigenius您好。我修改后的代码如下:DataSet dataset=new DataSet();
     dataadapter.Fill(dataset,"newskinds");
    newskindlist.DataSource=dataset.Tables["newskinds"].DefaultView;
    int i; int level1;
    foreach( DataRow dr in dataset.Tables["newskinds"].Rows)
    {
     level1 = Convert.ToInt32(dr["level"]);  
     String tempcataStr="&nbsp;||";
     for (i=1;i<(level1-1);i++)
     {
      tempcataStr=tempcataStr+"|";
     }tempcataStr=Convert.ToString(dr["title"]);
    newskindlist.DataTextField=tempcataStr;
     newskindlist.DataValueField=Convert.ToString(dr["id"]);
    newskindlist.DataBind();
    }
    但是不好使:报错!!!!怎么办??!!!DataBinder.Eval:“System.Data.DataRowView”不包含名称为 最新新闻 的属性。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: DataBinder.Eval:“System.Data.DataRowView”不包含名称为 最新新闻 的属性。源错误: 
    行 58:  newskindlist.DataTextField=tempcataStr;
    行 59:   newskindlist.DataValueField=Convert.ToString(dr["id"]);
    行 60:   newskindlist.DataBind();
    行 61:   }
    行 62:              //newskindlist.DataBind();