求助 for循环把所有附件插进一张数据库表

qyszone 2011-05-12 09:45:28
            if (FileUpload1.HasFile)
{
string FileName = this.FileUpload1.FileName;
string NowTime = DateTime.Now.ToString("yyyyMMddHHmmss ");
string NewFileName = NowTime + FileName.Substring(FileName.LastIndexOf("\\ ") + 1);
string FileType = FileName.Substring(FileName.LastIndexOf(". ") + 1).ToLower();
sfm1.StudentFile_FileName = FileName;
sfm1.StudentFile_FileMewName = NewFileName;
sfm1.StudentFile_Name = FileName;
FileUpload1.SaveAs(Server.MapPath("../studentfile/") + NewFileName);
}
if (FileUpload2.HasFile)
{
string FileName = this.FileUpload2.FileName;
string NowTime = DateTime.Now.ToString("yyyyMMddHHmmss ");
string NewFileName = NowTime + FileName.Substring(FileName.LastIndexOf("\\ ") + 1);
string FileType = FileName.Substring(FileName.LastIndexOf(". ") + 1).ToLower();
sfm1.StudentFile_FileName = FileName;
sfm1.StudentFile_FileMewName = NewFileName;
sfm1.StudentFile_Name = FileName;
FileUpload2.SaveAs(Server.MapPath("../studentfile/") + NewFileName);
}

if (FileUpload3.HasFile)
{
string FileName = this.FileUpload3.FileName;
string NowTime = DateTime.Now.ToString("yyyyMMddHHmmss ");
string NewFileName = NowTime + FileName.Substring(FileName.LastIndexOf("\\ ") + 1);
string FileType = FileName.Substring(FileName.LastIndexOf(". ") + 1).ToLower();
sfm1.StudentFile_FileName = FileName;
sfm1.StudentFile_FileMewName = NewFileName;
sfm1.StudentFile_Name = FileName;
FileUpload3.SaveAs(Server.MapPath("../studentfile/") + NewFileName);
}


上传的3个附件,我没用循环,在表里添加进去的全是FileUpload3的内容 肯定把前两个盖了, 想用循环的方式把他们都加进表里,就是添加一次进去3条,该如何写。
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 telankes2000 的回复:]

C# code

string FileName =string.Empty,NowTime =string.Empty,NewFileName =string.Empty,FileType =string.Empty;
ArrayList list = new ArrayList();
for(int i=0;i……
[/Quote]

FileName = Request.Files[i].FileName;
telankes2000 2011-05-12
  • 打赏
  • 举报
回复

string FileName =string.Empty,NowTime =string.Empty,NewFileName =string.Empty,FileType =string.Empty;
ArrayList list = new ArrayList();
for(int i=0;i<Request.Files.Count;i++){
FileName = Request.Files[i].FileName;
NowTime = DateTime.Now.ToString("yyyyMMddHHmmss");
NewFileName = NowTime + FileName.Substring(FileName.LastIndexOf("\\ ") + 1);
FileType = FileName.Substring(FileName.LastIndexOf(". ") + 1).ToLower();
sfm sfm1 = new sfm();
sfm1.StudentFile_FileName = FileName;
sfm1.StudentFile_FileMewName = NewFileName;
sfm1.StudentFile_Name = FileName;
list.Add(sfm1);
Request.Files[i].SaveAs(Server.MapPath("../studentfile/") + NewFileName);
}
//保存数据库 遍历ArrayList即可
Rock870210 2011-05-12
  • 打赏
  • 举报
回复
sfm1.StudentFile_FileName = FileName;
sfm1.StudentFile_FileMewName = NewFileName;
sfm1.StudentFile_Name = FileName;
楼主三个上传中均用到了该对象的引用,
也就是说楼主只在上传前声明了一次该变量,而保存该对象到表的代码没贴出来,估计也是在上传之后吧。如此,第一次为该对象的引用的三个属性赋值后,第二个附件时又修改了三个属性,第三个附件的时候也是,最后该引用的三个属性值就为第三个附件的值了。插入数据库,肯定是第三个附件的。
更正:在上传之前声明一个List<对象> list = new List<对象>();集合,
然后在每一个上传FileUpload里面单独声明:对象 sfm1 = new 对象(); 在属性赋值后保存该对象到List集合中。list.Add(sfm1);最后从集合中获取三个对象,保存到表中
qyszone 2011-05-12
  • 打赏
  • 举报
回复
是一个学生附件的表
这3个附件是固定的 必加进去的
加进去后 假设学生的ID是1 那么就要有3条ID是1的数据
qyszone 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lisliefor 的回复:]
在ASP.NET中实现多文件上传

LZ要的应该是这个效果,注意.cs中的代码,就是批量操作的。
[/Quote]
不是要这个效果
这3个附件是固定的
wtj2832 2011-05-12
  • 打赏
  • 举报
回复
你调试一下呢,看你生成的sql出入代码是怎样的,应该是一个事务里有多条插入操作
Lisliefor 2011-05-12
  • 打赏
  • 举报
回复
在ASP.NET中实现多文件上传

LZ要的应该是这个效果,注意.cs中的代码,就是批量操作的。

62,046

社区成员

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

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

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

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