日期:2014-05-18  浏览次数:20365 次

循环显示数据问题
C# code
 
DataSet Ds;
    DataTable Dt;
    SqlConnection Conn = new SqlConnection(strconn);
    Conn.Open();
    String sql = "select top 5 * from News order by ID desc" ;
    Ds=new DataSet();
    SqlDataAdapter Da = new SqlDataAdapter(sql,Conn);
    Conn.Close();
    Da.Fill(Ds,"News");
    Dr=Ds.Tables["News"];
    while(Dt.Read())
    {
    List=List+"<li>"+Dt["Title"].ToString()+"</li>";
    }
    NoticeList="<ul>"+List+"</ul>";


提示 :编译器错误消息: CS0117: “System.Data.DataTable”并不包含“Read”的定义

------解决方案--------------------
用错ado.net对象了
SqlDatareader Dr = new SqlDatareader (sql,Conn);
while(Dr.Read())
{
List=List+"<li>"+Dt["Title"].ToString()+"</li>";
}

这个成立

------解决方案--------------------
while(Dt.Read())
{
List=List+"<li>"+Dt["Title"].ToString()+"</li>";
}
应改为:
for (int i=0;i<Dt.Rows.Count ;i++)
{
List=List+"<li>"+Dt.Rows[i]["Title"].ToString()+"</li>";
}

------解决方案--------------------
C# code
DataSet Ds;
    DataTable Dt;
    SqlConnection Conn = new SqlConnection(strconn);
    Conn.Open();
    String sql = "select top 5 * from News order by ID desc" ;
    Ds=new DataSet();
    SqlDataAdapter Da = new SqlDataAdapter(sql,Conn);
    Conn.Close();
    Da.Fill(Ds,"News");
    Dr=Ds.Tables["News"];
    foreach(DataRow dr in Dt.Rows)
    {
    List=List+"<li>"+dr["Title"].ToString()+"</li>";
    }
    NoticeList="<ul>"+List+"</ul>";

------解决方案--------------------
C# code

for (int i=0;i <Dt.Rows.Count ;i++) 
{ 
    List=List+" <li>"+Dt.Rows[i]["Title"].ToString()+" </li>"; 
}

------解决方案--------------------
如果是以读的方式取出数据,那你就参照一楼用SqlDatareader 对象。
如果你已经取到了结果集,也就是说用了SqlDataAdapter 那你就可以用for循环一行一行的取出数据;

for(int i=0;i<DS.Tables["News"].Rows.count;i++)
{


}