把Excel中图片导入数据库中

innoways 2009-04-25 02:00:38
请各位高手帮帮,Excel中图片怎么导入数据库中,
...全文
495 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
innoways 2009-04-25
  • 打赏
  • 举报
回复
看来没有人回帖咯,
innoways 2009-04-25
  • 打赏
  • 举报
回复
这个我知道,我就是用的这个类库
if (!file.FileName.ToLower().EndsWith("xls"))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('只能导入Excel类型文件')</script>");
return;
}
//获取上传文件的名称
string myFile = file.FileName.ToString();
//判断上传文件名称是否存在,如果存在提示他/她换个名称。
if (File.Exists(Server.MapPath("../Administration/xls") + "\\" + myFile))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('文件名:" + myFile + "以存在,请您换个名字!')</script>");
return;
}
string fileName = myFile.Substring(myFile.LastIndexOf("\\") + 1);
//保存文件
file.PostedFile.SaveAs(Server.MapPath("../Administration/xls") + "\\" + fileName);
//Excel链接
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../Administration/xls") + "\\" + fileName + ";Extended Properties='Excel 8.0;hdr=yes;imex=1';";
DataSet myDataSet = new DataSet();
OleDbConnection oleDb = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [珠宝$]", strConn);
try
{
myCommand.Fill(myDataSet);
}
catch (Exception ex)
{
string aa = ex.Message;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('表单名不正确')</script>");
return;
}
//产品列表
DataSet productDataSet = new DataSet();
productDataSet = ProductManager.GetAllProductsDateSet(true);

//产品属性
DataSet productVariantDataSet = new DataSet();
productVariantDataSet = ProductVariantManager.GetByProductVariant(true);

//珠宝属性


for (int i = 0; i < myDataSet.Tables[0].Rows.Count; i++)
{
DataRow dr = productDataSet.Tables[0].NewRow();
DataRow productVariantDataRow = productVariantDataSet.Tables[0].NewRow();

try
{
#region 产品价格

//图片ID

productVariantDataRow["PictureID"] = 0;
//是否发布
if (myDataSet.Tables[0].Rows[i]["ProductVariantPublished"].ToString() != null && myDataSet.Tables[0].Rows[i]["ProductVariantPublished"].ToString() != "")
{
productVariantDataRow["Published"] = Convert.ToBoolean(myDataSet.Tables[0].Rows[i]["ProductVariantPublished"].ToString());
}
else
{
productVariantDataRow["Published"] = true;
}
//是否已被删除
if (myDataSet.Tables[0].Rows[i]["ProductVariantDeleted"].ToString() != null && myDataSet.Tables[0].Rows[i]["ProductVariantDeleted"].ToString() != "")
{
productVariantDataRow["Deleted"] = Convert.ToBoolean(myDataSet.Tables[0].Rows[i]["ProductVariantDeleted"].ToString());
}
else
{
productVariantDataRow["Deleted"] = false;
}
//排序
if (myDataSet.Tables[0].Rows[i]["DisplayOrder"].ToString() != null && myDataSet.Tables[0].Rows[i]["DisplayOrder"].ToString() != "")
{
productVariantDataRow["DisplayOrder"] = Convert.ToInt32(myDataSet.Tables[0].Rows[i]["DisplayOrder"].ToString());
}
else
{
productVariantDataRow["DisplayOrder"] = 0;
}

//创建时间
productVariantDataRow["CreatedOn"] = time;
//修改时间
productVariantDataRow["UpdatedOn"] = time;

ProductVariant productVariant = ProductVariantManager.InsertProductVariant(product.ProductID,
productVariantDataRow["Name"].ToString(), productVariantDataRow["SKU"].ToString(),
productVariantDataRow["Description"].ToString(), productVariantDataRow["AdminComment"].ToString(),
productVariantDataRow["ManufacturerPartNumber"].ToString(), false, 0,
Convert.ToBoolean(productVariantDataRow["IsShipEnabled"].ToString()),
Convert.ToBoolean(productVariantDataRow["IsFreeShipping"].ToString()),
int.Parse(productVariantDataRow["TaxCategoryID"].ToString()), int.Parse(productVariantDataRow["StockQuantity"].ToString()),
int.Parse(productVariantDataRow["WarehouseId"].ToString()),
Convert.ToBoolean(productVariantDataRow["DisableBuyButton"].ToString()),
Convert.ToBoolean(productVariantDataRow["RequiresTextOption"].ToString()),
productVariantDataRow["TextOptionPrompt"].ToString(), Convert.ToDecimal(productVariantDataRow["Price"].ToString()),
Convert.ToDecimal(productVariantDataRow["OldPrice"].ToString()),
Convert.ToDecimal(productVariantDataRow["Weight"].ToString()),
Convert.ToDecimal(productVariantDataRow["Length"].ToString()),
Convert.ToDecimal(productVariantDataRow["Width"].ToString()),
Convert.ToDecimal(productVariantDataRow["Height"].ToString()),
int.Parse(productVariantDataRow["PictureID"].ToString()),
Convert.ToBoolean(productVariantDataRow["Published"].ToString()),
Convert.ToBoolean(productVariantDataRow["Deleted"].ToString()),
int.Parse(productVariantDataRow["DisplayOrder"].ToString()), time, time
);
#endregion
}
catch (Exception ex1)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('" + ex1.Message.ToString() + "')</script>");
return;
}
}
innoways 2009-04-25
  • 打赏
  • 举报
回复
图片用二进制保存到数据库中
cpp2017 2009-04-25
  • 打赏
  • 举报
回复
字段用oledb连接方式导.不过如果要字段和图片对应的话那就难办了
innoways 2009-04-25
  • 打赏
  • 举报
回复
不是的,还有其他字段
cpp2017 2009-04-25
  • 打赏
  • 举报
回复
如果只导图片的话,可以先将excel存成html文件,然后去文件夹下找图片保存.

用ExcelApplication对象.

62,267

社区成员

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

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

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

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