protected void btnsubmit_Click(object sender, EventArgs e)
{
string fileName = "";
foreach (HttpPostedFile postedFile in imgupld.PostedFiles)
{
fileName = Path.GetFileName(postedFile.FileName);
postedFile.SaveAs(Server.MapPath("~/ADMINDASHBOARD/EVENT/" + fileName));
ev.PHOTOS = fileName;
}
ev.TITLE = txttitle.Text.Trim();
ev.YER = Convert.ToInt32(ddlyear.SelectedValue);
objlayer.saveevents(ev);
}
我有这个代码将多个图像保存到名为Event然后数据库的文件夹中。所有图像都保存到文件夹,但只有一个图像被保存到名为PHOTOS的数据库列中。我想一次性将所有图像保存到PHOTOS列的单个列单元格中。列PHOTOS的数据类型是varchar(max)。
编辑:
public void saveevents(CONNECTION.EVNT ev)
{
ev.CRDT = DateTime.Now;
ev.ISACT = 0;
con.da.EVNTs.InsertOnSubmit(ev);
con.da.SubmitChanges();
}
savevents调用在foreach之外(我假设saveevents是你保存到数据库的地方)。试试这个:
foreach (HttpPostedFile postedFile in imgupld.PostedFiles)
{
fileName = Path.GetFileName(postedFile.FileName);
postedFile.SaveAs(Server.MapPath("~/ADMINDASHBOARD/EVENT/" + fileName));
ev.PHOTOS = fileName;
ev.TITLE = txttitle.Text.Trim();
ev.YER = Convert.ToInt32(ddlyear.SelectedValue);
objlayer.saveevents(ev);
}
请注意,ev对象未初始化。这是在每个循环中创建新对象的更好解决方案。在我的例子中,我用来在我的实体中添加Id属性。如果Id == 0则为新实体,如果Id!= 0,则Save方法将其视为更新。
评论后的变化:
foreach (HttpPostedFile postedFile in imgupld.PostedFiles)
{
fileName = Path.GetFileName(postedFile.FileName);
postedFile.SaveAs(Server.MapPath("~/ADMINDASHBOARD/EVENT/" + fileName));
CONNECTION.EVNT ev = new CONNECTION.EVNT(); //this line is new
ev.PHOTOS = fileName;
ev.TITLE = txttitle.Text.Trim();
ev.YER = Convert.ToInt32(ddlyear.SelectedValue);
objlayer.saveevents(ev);
}