从web获取图像,将其保存在sql数据库中

时间:2013-11-17 14:50:10

标签: c# sql sql-server

我正在尝试从网上抓取图片,并将其添加到我的数据库中。

String lsResponse = string.Empty;

using (HttpWebResponse lxResponse = (HttpWebResponse)req1.GetResponse())
{
   using (BinaryReader reader = new BinaryReader(lxResponse.GetResponseStream()))
   {
      Byte[] lnByte = reader.ReadBytes(1 * 1024 * 1024 * 10);

      using (FileStream lxFS = new FileStream(id + ".png", FileMode.Create))
      {
         lxFS.Write(lnByte, 0, lnByte.Length);

我的SQL Server数据类型为Varbinary(MAX)。尝试不同类型(图像,...)不起作用。

将其放入数据库。

SqlCommand cmd = new SqlCommand("INSERT INTO PlayersDB (id) ) VALUES (@id);
cmd.Parameters.AddWithValue("@id", lnByte);

我一直收到错误:

  

不允许从数据类型nvarchar到varbinary(max)的隐式转换。使用CONVERT函数运行此查询。

那么,我的程序看到我的lnByte不是二进制文件?

2 个答案:

答案 0 :(得分:1)

首先要确定数据类型是否正确。我对SQL服务器了解不多,但我在MySql中遇到了类似的问题。我将数据类型更改为Blob并且工作正常

答案 1 :(得分:1)

我们使用blob在我的工作场所的sql db中存储图像。我自己并不是特别有经验,但这里有一些Technet资源可以比我更好地解释它。

Binary Large Object (Blob) Data (SQL Server)

FILESTREAM (SQL Server)