我必须在字符串变量中存储多个图像,以便我可以将该变量传递给表对象以将其保存到单个数据库列中

问题描述 投票:0回答:1
 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(); 
}
c# asp.net
1个回答
0
投票

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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.