存储的是图片的路径吗?

A36982 2012-12-19 01:41:53
FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);
Byte[] byrte=new Byte[fs.Length ];
fs.Read(byrte,0, Convert.ToInt32(fs.Length));
fs.Close();
图片P1060218.jpg放在debug目录下面。然后把byrte存储到数据库中,这应该是往数据库中存储的图片的路径吧?
...全文
308 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
A36982 2012-12-20
  • 打赏
  • 举报
回复
引用 17 楼 haukwong 的回复:
C# code?12345678910111213//存入图片SqlConnection conn = new SqlConnection("server=.;database=TestDB;uid=sa;pwd=1qaz@wsx#EDC"); SqlCommand cmd = conn.CreateCommand(); cmd……
pictureBox1.Image = Image.FromStream(ms);还是ms这个参数无效,已经证实ms不是一个空的数组,真的很背催,为啥呢?
Hauk 2012-12-19
  • 打赏
  • 举报
回复

//存入图片
SqlConnection conn = new SqlConnection("server=.;database=TestDB;uid=sa;pwd=1qaz@wsx#EDC");
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "insert into UserHead values(@headImg,@userId)";
            cmd.Parameters.Add("@headImg", SqlDbType.Image);
            cmd.Parameters.Add("@userId", SqlDbType.VarChar);
            MemoryStream ms = new MemoryStream();
            Image.FromFile("test.jpg").Save(ms, ImageFormat.Jpeg);
            cmd.Parameters["@headImg"].Value = ms.GetBuffer();
            cmd.Parameters["@userId"].Value = "test001";
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();

//取出图片
SqlConnection conn = new SqlConnection("server=.;database=TestDB;uid=sa;pwd=1qaz@wsx#EDC");
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select * from UserHead";
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            byte[] buffer = (byte[])dt.Rows[0].ItemArray[0];//注意你获取到的byte数组是否正确
            MemoryStream ms = new MemoryStream(buffer);
            pictureBox1.Image = Image.FromStream(ms);
            ms.Close();
你参考一下
A36982 2012-12-19
  • 打赏
  • 举报
回复
引用 8 楼 A36982 的回复:
引用 6 楼 sibiyellow 的回复:C# code?1234FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);//得到FileStream对象 即文件的流对象 Byte[] byrte=new Byte[fs.Length ]; //定义字节数组fs.Read(byrte,0, Conve……
MemoryStream my = new MemoryStream(byrte,true); Image image = Image.FromStream(my); 最后找出是my无效。为啥啊?
东邪独孤 2012-12-19
  • 打赏
  • 举报
回复
不是路径,是把整个图片的内容都存进去了。
cs张 2012-12-19
  • 打赏
  • 举报
回复
SqlCommand cmd = new SqlCommand(sqlStr, conn); //其他的你懂的~ conn连接~~ sqlStr = "insert [表名][Photo])values(@Photo)"; //设置Sql语句 fs.Read(data1, 0, (int)fs.Length); //把照片存到数组中 cmd.Parameters.Add("@Photo", SqlDbType.Image); //这里选择Image类型 cmd.Parameters["@Photo"].Value = data1; // 给@Photo参数赋值,把照片存到byte数组中 cmd.ExecuteNonQuery(); //执行SQL语句 存~
理不完的逻辑 2012-12-19
  • 打赏
  • 举报
回复
楼上正解,你断点下试试
Hauk 2012-12-19
  • 打赏
  • 举报
回复
string sql = "select photo from TB_Worker where Number =1"; DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, con); sda.Fill(ds, "TB_Worker"); Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0];索引是否正确,table里面的数据是否正确 MemoryStream my = new MemoryStream(byrte,true); my.Read(byrte, 0, byrte.Length);这一句是多余的 Image image = Image.FromStream(my); pictureBox1.BackgroundImage = image; 断电调试一下看看获取到的数据是什么
燕雀之志 2012-12-19
  • 打赏
  • 举报
回复
引用 5 楼 A36982 的回复:
引用 2 楼 zhujiazhi 的回复: 是存整个图片的图片的什么?
头像真可爱。
Trouble___Maker 2012-12-19
  • 打赏
  • 举报
回复
存的是文件流。
A36982 2012-12-19
  • 打赏
  • 举报
回复
引用 7 楼 haukwong 的回复:
引用 4 楼 A36982 的回复:引用 1 楼 haukwong 的回复:不是路径,是图片的数据流。哦。但是我从数据库中获取该数据流的时候,总是会发现错误。不知道是为什么?求大仙知道一下啦 数据库是什么字段类型,出什么错了?
从数据库中取出来的时候 string sql = "select photo from TB_Worker where Number =1"; DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, con); sda.Fill(ds, "TB_Worker"); Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0]; MemoryStream my = new MemoryStream(byrte,true); my.Read(byrte, 0, byrte.Length); Image image = Image.FromStream(my); pictureBox1.BackgroundImage = image; 存进去的是image字段类型的。 会报参数无效的错误。帮忙看看。谢谢
A36982 2012-12-19
  • 打赏
  • 举报
回复
引用 6 楼 sibiyellow 的回复:
C# code?1234FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);//得到FileStream对象 即文件的流对象 Byte[] byrte=new Byte[fs.Length ]; //定义字节数组fs.Read(byrte,0, Convert.ToInt32(fs.Length))……
从数据库中取出来的时候 string sql = "select photo from TB_Worker where Number =1"; DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, con); sda.Fill(ds, "TB_Worker"); Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0]; MemoryStream my = new MemoryStream(byrte,true); my.Read(byrte, 0, byrte.Length); Image image = Image.FromStream(my); pictureBox1.BackgroundImage = image; 会报参数无效的错误。帮忙看看。谢谢
Hauk 2012-12-19
  • 打赏
  • 举报
回复
引用 4 楼 A36982 的回复:
引用 1 楼 haukwong 的回复:不是路径,是图片的数据流。哦。但是我从数据库中获取该数据流的时候,总是会发现错误。不知道是为什么?求大仙知道一下啦
数据库是什么字段类型,出什么错了?
天下如山 2012-12-19
  • 打赏
  • 举报
回复

FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);//得到FileStream对象 即文件的流对象 
Byte[] byrte=new Byte[fs.Length ];  //定义字节数组
fs.Read(byrte,0, Convert.ToInt32(fs.Length)); 读取流 并且存入数组byrte
fs.Close();  //关闭
然后你说 出错 是哪出错呢?
A36982 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 zhujiazhi 的回复:
是存整个图片的
图片的什么?
A36982 2012-12-19
  • 打赏
  • 举报
回复
引用 1 楼 haukwong 的回复:
不是路径,是图片的数据流。
哦。但是我从数据库中获取该数据流的时候,总是会发现错误。不知道是为什么?求大仙知道一下啦
A36982 2012-12-19
  • 打赏
  • 举报
回复
哦。但是我从数据库中获取该数据流的时候,总是会发现错误。不知道是为什么?求大仙知道一下啦
zhujiazhi 2012-12-19
  • 打赏
  • 举报
回复
是存整个图片的
Hauk 2012-12-19
  • 打赏
  • 举报
回复
不是路径,是图片的数据流。

110,568

社区成员

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

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

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