【问题标题】:How to insert image into database table using C#如何使用 C# 将图像插入数据库表
【发布时间】:2020-07-09 16:35:27
【问题描述】:

我正在尝试将图像插入数据库表中,但在选择图像后,上传的图像在表中显示为 NULL。帮我把图片正确上传到数据库中。

这是我将数据插入数据库表的代码:

protected void addProduct_Click(object sender, EventArgs e)
{
    using (TradersRehmanEntities db = new TradersRehmanEntities())
    {
        tblProduct ad = new tblProduct();
        ad.ProductName = txtProducttName.Text;
        ad.ProductPrice = txtSalePrice.Text;
        ad.SalePrice = txtSalePrice.Text;
        ad.StockAvaliable = txtStock.Text;
        ad.CategoriesId = Convert.ToInt32(catergoriesDDL.SelectedValue);

        ad.ProductImage = flImageUpload.SaveAs('ProductImage' + flImageUpload.FileName);

        db.tblProducts.Add(ad);

        db.SaveChanges();

        Response.Write("Product added successfully");
    }
} 

【问题讨论】:

  • 那么,flImageUpload.SaveAs() 方法返回什么?它是否将实际图像字节作为字节数组返回?还是只是一些状态码??由于我们不知道 flImageUpload 到底是什么 - 我们如何才能开始提供帮助??
  • @marc_s sir flImageUpload 是 FileUpload Control 的 ID
  • 那么您使用的是 ASP.NET webforms 吗?那你为什么有asp.net-mvc标签?!?!?这只是让读者感到困惑......如果您使用的是 ASP.NET 网络表单 - FileUpload.SaveAs() 方法不会返回任何内容 - 这是一个 void 方法......
  • @marc_s 是的,先生正在使用 ASP.NET 网络表单。 FileUpload,SaveAs() 不返回任何东西。先生请帮助找到在数据库 sql 服务器上上传图像的正确方法。
  • 更新了您的标签 - 删除了错误 asp.net-mvc,添加了webforms。另外:搜索所以!!已经有 大量 的问题(和答案)涉及在 SQL Server 中存储图像 - 例如stackoverflow.com/questions/6333553/…stackoverflow.com/questions/60834490/…更多!

标签: c# asp.net webforms entity-framework-6


【解决方案1】:

试试这个 - 从FileUpload 控件的.FileBytes 属性中获取上传文件的字节数组:

protected void addProduct_Click(object sender, EventArgs e)
{
    using (TradersRehmanEntities db = new TradersRehmanEntities())
    {
        tblProduct ad = new tblProduct();
        ad.ProductName = txtProducttName.Text;
        ad.ProductPrice = txtSalePrice.Text;
        ad.SalePrice = txtSalePrice.Text;
        ad.StockAvaliable = txtStock.Text;
        ad.CategoriesId = Convert.ToInt32(catergoriesDDL.SelectedValue);

        // grab the file's byte array from the FileUpload control    
        ad.ProductImage = flImageUpload.FileBytes();

        db.tblProducts.Add(ad);

        db.SaveChanges();

        Response.Write("Product added successfully");
    }
} 

【讨论】:

    【解决方案2】:

    尝试将其保存为 blob。 但最好将其保存在对象存储中(例如 amazon S3)并在 db 中保留对它的引用

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 1970-01-01
      • 2013-05-10
      • 2011-01-20
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 2020-07-20
      • 2015-02-20
      相关资源
      最近更新 更多