如何遍历数据集?SqlDataReader或者DataSet或者ArrayList。 应该要写一个怎样的循环语句呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 while(reader.Read()){.......} 这个是SqlDataReader的,其他两种数据集如何遍历呢? SqlDataReader dr3 = myCategory.drSelectOrderBy(); int iDeepNum; string strCategoryName; while(dr3.Read()) { iDeepNum = dr3.GetInt32(2); strCategoryName = dr3.GetString(3); if(iDeepNum == 1) { strCategoryName = strCategoryName.ToString(); } else { strCategoryName = "|-" + strCategoryName.ToString(); } ddlCategory.DataSource = dr3; ddlCategory.DataTextField = strCategoryName.ToString(); ddlCategory.DataValueField = strCategoryName.ToString(); ddlCategory.DataBind(); }这样为何不能绑定? Dataset楼主是要行遍历呢?还是列遍历?如果是每行每列遍历的话,嵌套循环就何以了ArrayList是一维的还是多维的?要是一维的一次循环就行,多维的同上 那DataSet到底是用foreach{}还是for{for{}}? DataSet ds = new Dataset();行:foreach(DataRow dr in ds.Tables[0].Rows){操作dr}列:foreach(DataColumn dc in ds.Tables[0].Columns){操作dc} DataSet ds = myCategory.dsSelectOrderBy(); for(int i=0;i<ds.Tables[0].Rows.Count;i++) { if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1) { ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString(); } else { ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString(); } Response.Write(int.Parse(ds.Tables[0].Rows[i][2].ToString())); ddlCategory.DataSource = ds.Tables[0].DefaultView; ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString(); ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString(); ddlCategory.DataBind();这个代码改写成foreach形式怎么改? 那DataSet到底是用foreach{}还是for{for{}}?>>你左手和右手用剪刀石头布来比,左手赢了用foreach,右手赢了用for{for{}}.每次都可以这样决定。 既然这么英明帮我解决一个问题: DataSet ds = myCategory.dsSelectOrderBy(); for(int i=0;i<ds.Tables[0].Rows.Count;i++) { if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1) { ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString(); } else { ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString(); } } ddlCategory.DataSource = ds.Tables[0].DefaultView; ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString(); ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString(); ddlCategory.DataBind(); }我现在出现的结果是,两级之后的显示都变成了"|-"+类别,而不是N个"|-"+类别,还差一个怎样的循环条件??? 这根本不是循环数据集的问题。搭眼一看就知道你要干什么了。for(int i=0;i<ds.Tables[0].Rows.Count;i++){ int currentDepth = int.Parse(ds.Tables[0].Rows[i][2].ToString()); if(currentDepth ==1) { ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString(); } else { for(int k=1; k<currentDepth; k++) { ds.Tables[0].Rows[i][3] = "-" + ds.Tables[0].Rows[i][3].ToString(); } ds.Tables[0].Rows[i][3] = "|" + ds.Tables[0].Rows[i][3].ToString(); } } IIS中发布web服务出错 .net中,将panel的四个角设置成圆角 SQL--高难度插入语句问题--高手指点下---不卖也来看看 两个小问题,一起问,大家帮忙看看。 【征求意见】 vs2003中添加TreeView的问题 焦点的判断 高分 求ASP.NET C# 编的网上考试系统下载 MVC4 图片上传问题 asp.net与wpf的代码隐藏(codebehind)设计思想是一样的吗? javascript不能执行了 改变了iframe的src属性,如何只刷新iframe使其显示不同的内容?
{...
....
}
int iDeepNum;
string strCategoryName;
while(dr3.Read())
{
iDeepNum = dr3.GetInt32(2);
strCategoryName = dr3.GetString(3);
if(iDeepNum == 1)
{
strCategoryName = strCategoryName.ToString();
}
else
{
strCategoryName = "|-" + strCategoryName.ToString();
} ddlCategory.DataSource = dr3;
ddlCategory.DataTextField = strCategoryName.ToString();
ddlCategory.DataValueField = strCategoryName.ToString();
ddlCategory.DataBind();
}这样为何不能绑定?
如果是每行每列遍历的话,嵌套循环就何以了
ArrayList是一维的还是多维的?
要是一维的一次循环就行,多维的同上
行:foreach(DataRow dr in ds.Tables[0].Rows){操作dr}
列:foreach(DataColumn dc in ds.Tables[0].Columns){操作dc}
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1)
{
ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
}
else
{
ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString();
} Response.Write(int.Parse(ds.Tables[0].Rows[i][2].ToString()));
ddlCategory.DataSource = ds.Tables[0].DefaultView;
ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString();
ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString();
ddlCategory.DataBind();
这个代码改写成foreach形式怎么改?
DataSet ds = myCategory.dsSelectOrderBy();
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if(int.Parse(ds.Tables[0].Rows[i][2].ToString())==1)
{
ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
}
else
{
ds.Tables[0].Rows[i][3] = "|-" + ds.Tables[0].Rows[i][3].ToString();
}
}
ddlCategory.DataSource = ds.Tables[0].DefaultView;
ddlCategory.DataTextField = ds.Tables[0].Columns[3].ToString();
ddlCategory.DataValueField = ds.Tables[0].Columns[3].ToString();
ddlCategory.DataBind();
}我现在出现的结果是,两级之后的显示都变成了"|-"+类别,而不是N个"|-"+类别,还差一个怎样的循环条件???
{
int currentDepth = int.Parse(ds.Tables[0].Rows[i][2].ToString());
if(currentDepth ==1)
{
ds.Tables[0].Rows[i][3] = ds.Tables[0].Rows[i][3].ToString();
}
else
{
for(int k=1; k<currentDepth; k++)
{
ds.Tables[0].Rows[i][3] = "-" + ds.Tables[0].Rows[i][3].ToString();
}
ds.Tables[0].Rows[i][3] = "|" + ds.Tables[0].Rows[i][3].ToString();
}
}