一段代码

grd10000 2010-10-19 01:25:04

DataSet st = photomanage.GetPhotoList();//有11条记录文件夹名称数据
DataSet ds=null;
for (int i = 0; i<st.Tables[0].Rows.Count;i++)
{
string path = Server.MapPath("\\Files\\Photo\\") + st.Tables[0].Rows[i]["photoname"].ToString();
int StartIndex = CurrentPage * PageSize;
DirectoryInfo imagesfile = new DirectoryInfo(path);
FileInfo[] Sfi = imagesfile.GetFiles(); //获得文件信息
//通过hashtable绑定路径
ds= new DataSet();
DataTable tb = new DataTable();
ds.Tables.Add(tb);
DataColumn colSmall = new DataColumn("SmallPhoto");
DataColumn colName = new DataColumn("Name");
ds.Tables[0].Columns.Add(colSmall);
ds.Tables[0].Columns.Add(colName);
if (Sfi.Length == 0)
{
DataRow row = ds.Tables[0].NewRow();
row["SmallPhoto"] = "../Images/fm.jpg";
row["Name"] = st.Tables[0].Rows[i]["photoname"].ToString();
ds.Tables[0].Rows.Add(row);
}
if (Sfi.Length - StartIndex < 12)
{
for (int j = 0; j < (Sfi.Length - StartIndex); j++)
{
DataRow row = ds.Tables[0].NewRow();
row["SmallPhoto"] = "../../Files/photo/" + Sfi[j + StartIndex].Name;
row["Name"] = Sfi[j + StartIndex].Name;
ds.Tables[0].Rows.Add(row);
}
}
else
{
for (int k = 0; k < PageSize; k++)
{
DataRow row = ds.Tables[0].NewRow();
row["SmallPhoto"] = "../../Files/photo/" + Sfi[k + StartIndex].Name;
row["Name"] = Sfi[k + StartIndex].Name;
ds.Tables[0].Rows.Add(row);
}
}
}
return ds; //此处只返回了一条数据,这是为什么?



请大侠们解释下
...全文
224 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengjingjian628 2010-10-19
  • 打赏
  • 举报
回复
cherho0 2010-10-19
  • 打赏
  • 举报
回复
 DataTable dtsourcetemp = dt.Clone();
for (int i =0; i < pager.PageSize ; i++)
{
if (i == pager.RecordCount)
{
break;
}
dtsourcetemp.Rows.Add(dtsource.Rows[i].ItemArray);
}
cherho0 2010-10-19
  • 打赏
  • 举报
回复
楼主可以使用datatable来对另一个datatable的架构进行克隆,然后再toarrayitem来赋值,这样操作简单,数据准确。
shiyuyao1987 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 grd10000 的回复:]
引用 11 楼 shiyuyao1987 的回复:
设断点调试下,就知道了
]

肯定设断点调试了,,取出来的数据为1
[/Quote]
设断点跟踪下循环里面的执行详细过程,就知道问题出在哪里了
grd10000 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 shiyuyao1987 的回复:]
设断点调试下,就知道了
[/Quote]]

肯定设断点调试了,,取出来的数据为1
shiyuyao1987 2010-10-19
  • 打赏
  • 举报
回复
设断点调试下,就知道了
grd10000 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shiyuyao1987 的回复:]
ds.Tables.Add(tb);
这句放在循环最后面
[/Quote]

DataSet st = photomanage.GetPhotoList();
DataSet ds = new DataSet(); ;
for (int i = 0; i<st.Tables[0].Rows.Count;i++)
{
string path = Server.MapPath("\\Files\\Photo\\") + st.Tables[0].Rows[i]["photoname"].ToString();

int StartIndex = CurrentPage * PageSize;
DirectoryInfo imagesfile = new DirectoryInfo(path);
FileInfo[] Sfi = imagesfile.GetFiles(); //获得文件信息
//通过hashtable绑定小图路径和大图路径

DataTable tb = new DataTable();

DataColumn colSmall = new DataColumn("SmallPhoto");
DataColumn colName = new DataColumn("Name");
tb.Columns.Add(colSmall);
tb.Columns.Add(colName);
if (Sfi.Length == 0)
{
DataRow row = tb.NewRow();
row["SmallPhoto"] = "../Images/fm.jpg";
row["Name"] = st.Tables[0].Rows[i]["photoname"].ToString();
tb.Rows.Add(row);
}

ds.Tables.Add(tb);
}
return ds;


这样还是一样的
村长_乐 2010-10-19
  • 打赏
  • 举报
回复
lz好好看看就会知道的...
看看ls说的
shiyuyao1987 2010-10-19
  • 打赏
  • 举报
回复
ds.Tables.Add(tb);
这句放在循环最后面
shiyuyao1987 2010-10-19
  • 打赏
  • 举报
回复
ds= new DataSet();这句代码放到循环外面

ds.Tables[0]替换成tb
grd10000 2010-10-19
  • 打赏
  • 举报
回复
原因~~~~~~
grd10000 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qingfeng_wu 的回复:]
那肯定了,我首先不看你代码我就知道ds已经被重新赋值了,
也就是说,ds进入for循环后被重新赋值,你在调试仔细检查看看。
[/Quote]

我也是知道这个愿意啊
问题是如何改
仙儿 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qingfeng_wu 的回复:]

那肯定了,我首先不看你代码我就知道ds已经被重新赋值了,
也就是说,ds进入for循环后被重新赋值,你在调试仔细检查看看。
[/Quote]

UP
annekay 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qingfeng_wu 的回复:]
那肯定了,我首先不看你代码我就知道ds已经被重新赋值了,
也就是说,ds进入for循环后被重新赋值,你在调试仔细检查看看。
[/Quote]
N,UP
吴青峰 2010-10-19
  • 打赏
  • 举报
回复
那肯定了,我首先不看你代码我就知道ds已经被重新赋值了,
也就是说,ds进入for循环后被重新赋值,你在调试仔细检查看看。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧