如何将img图片写到oracle数据库中

吾非大神 2008-06-22 01:12:55
string imgpath = UrlImg(imgurl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(rUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
我通过上面的法子从网页上读到一个图片 流,
Stream st= resStream;
pictureBox1.Image = Image.FromStream(st);这样在Picturebox里能显示图片

我想把他写到oracle数据库里怎么写呢,再怎么读出来呢? 表字段我用的BLOB
请教
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
devie 2008-06-25
  • 打赏
  • 举报
回复
你改成
oraComm.Parameters.Add("bytes", OracleType.Blob);//添加参数
oraComm.Parameters["bytes"].Value = bytes;//为参数赋值
试试,如果不行用下面的方式是试一下

OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "pDName";
parameter.DbType = DbType.String;
parameter.Value = "ENGINEERING";
parameter.SourceColumn = "DName";

oraComm.Parameters.Add(parameter);

在Catch中扑捉异常,然后看一下是什么原因!!
zzyhuian06142 2008-06-25
  • 打赏
  • 举报
回复
在Catch里面加上错误类SqlException 看看是否出错了
吾非大神 2008-06-25
  • 打赏
  • 举报
回复
问题不大 ,没人过来接分啊?
吾非大神 2008-06-25
  • 打赏
  • 举报
回复
补充
oracle数据库,字段为 blob
吾非大神 2008-06-25
  • 打赏
  • 举报
回复
问题基本解决
发上来,希望对以后遇到这问题的各位有帮助
//HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
// request.Method = "get";
// request.ContentType = "text ml";
// request.Timeout = 30 * 1000;
// byte[] buffer = new byte[1024];
// using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
// {
// using (Stream reader = response.GetResponseStream())
// {
// reader.ReadTimeout = 30 * 1000;
// using (MemoryStream memory = new MemoryStream())
// {
// int index = 1;
// int sum = 0;
// while (index > 0 && sum < 100 * 1024)
// {
// index = reader.Read(buffer, 0, 1024);
// if (index > 0)
// {
// memory.Write(buffer, 0, index);
// byte[] bytes = memory.ToArray();
// sum += index;
// }
// }
// }
// }
// }
String updateSql = "update dbhtml_img set IMG=:bytes where ZT_ID='321'";
OracleCommand oraComm = new OracleCommand(updateSql, con);
oraComm.Parameters.Add(":bytes", OracleType.Blob);//添加参数
oraComm.Parameters[":bytes"].Value = bytes;//为参数赋值
oraComm.ExecuteNonQuery();
吾非大神 2008-06-22
  • 打赏
  • 举报
回复
To 失误
您给的链接上的那个帖子,上面给的解决方法
网址基本都上不去了
吾非大神 2008-06-22
  • 打赏
  • 举报
回复
谢楼上各位 关注

yagebu1983 我在oracle里实现
yagebu1983 2008-06-22
  • 打赏
  • 举报
回复

oraComm.Parameters.Add("@bytes", OracleType.Blob);//添加参数
oraComm.Parameters["@bytes"].Value = bytes;//为参数赋值


这样试试!!加个@
CathySun118 2008-06-22
  • 打赏
  • 举报
回复
参考:http://topic.csdn.net/t/20031126/14/2496956.html
fineredy 2008-06-22
  • 打赏
  • 举报
回复
学习中
帮忙顶 !
吾非大神 2008-06-22
  • 打赏
  • 举报
回复

string imgpath = UrlImg(imgurl);
FileWebRequest request = (FileWebRequest)WebRequest.Create(imgpath);
FileWebResponse response = (FileWebResponse)request.GetResponse();
//获得图片的流
Stream resStream = response.GetResponseStream();
byte[] bytes = new byte[resStream.Length];
int numBytesToRead = (int)resStream.Length;
int numBytesRead = 0;
while (numBytesToRead > 0)
{
int n = resStream.Read(bytes, numBytesRead, numBytesToRead);
if (n == 0)
break;
numBytesRead += n;
numBytesToRead -= n;
}
resStream.Close();
clsDataBase dataBase = new clsDataBase();
//写到数据库的方法
dataBase.InputDataBase(bytes);


public void InputDataBase(byte[] buf)
{
Con();
try
{
byte[] bytes =buf;
String updateSql = "update dbhtml_img set IMG=:bytes where ZT_ID='110'";
OracleCommand oraComm = new OracleCommand(updateSql,con);
oraComm.Parameters.Add(":bytes", OracleType.Blob);//添加参数
oraComm.Parameters[":bytes"].Value = bytes;//为参数赋值
oraComm.ExecuteNonQuery();
}
catch { }
finally
{
cmd.Connection.Close();
cmd.Connection.Dispose();
}

上面代码,执行到 oraComm.ExecuteNonQuery(); 之后程序没反应了。。。不晓得哪里出错误了

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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