.NET中如何循环遍历一个文件夹中的图片并将图片以二进制的方式存入sqlserver数据库

我有一个文件夹,里面有N张图片,我需要把这个文件夹里的所有图片以二进制的方式存到数据库里,数据库里有两列,ID和img,一个ID对应一个解析过后的二进制,求详细代码,最好... 我有一个文件夹,里面有N张图片,我需要把这个文件夹里的所有图片以二进制的方式存到数据库里,数据库里有两列,ID和img,一个ID对应一个解析过后的二进制,求详细代码,最好前台和后台都有,asp.net的,谢谢 展开
 我来答
创作者zUzVB1Sl31
2015-05-08 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部
        public void ToImg(Image img, String name)  //插入图片
        {
            #region 上传文件办法
            //FileStream fs = new FileStream(Application.StartupPath+@"/gy.gif", FileMode.Open,  FileAccess.Read); 
            //BinaryReader br = new BinaryReader(fs); 
            //byte[] photo = br.ReadBytes((int)fs.Length); 
            // br.Close(); 
            //fs.Close(); 
            #endregion

            //把图片转换成二进制
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] photo = ms.GetBuffer();
            ms.Close();

            //存储字段
            OleDbCommand cmd = new OleDbCommand("INSERT INTO 下单表(订票人, 识别码) VALUES(@CategoryName,@Picture)", conn);
            cmd.Parameters.Add("@CategoryName", OleDbType.VarChar, 15).Value = name;
            cmd.Parameters.Add("@Picture", OleDbType.Binary, photo.Length).Value = photo;
            cmd.ExecuteNonQuery();
        }
        public void Pix(PictureBox px, String name)  //显示图片
        {
            String sql = "Select 识别码 from 下单表 where 订票人='" + name + "'";
            byte[] imagebytes = null;
            OleDbCommand com = new OleDbCommand(sql, conn);
            OleDbDataReader dr = com.ExecuteReader();
            while (dr.Read())
            {
                imagebytes = (byte[])dr.GetValue(0);
            }
            MemoryStream ms = new MemoryStream(imagebytes);
            Bitmap bmpt = new Bitmap(ms);
            px.Image = bmpt;
            px.SizeMode = PictureBoxSizeMode.StretchImage;
        }

这是数据库读取和存储图片的方法,至于遍历文件夹,你自己找下例子吧,我是个懒人,太无聊的事情不做

追问
二进制存储和读取我弄出来了,就是不知道怎么加循环遍历,把循环遍历和存数结合
追答
            DirectoryInfo theFolder = new DirectoryInfo(@"路径");
            DirectoryInfo[] dirInfo = theFolder.GetDirectories();
            //遍历文件夹内所有子文件夹
            foreach (DirectoryInfo NextFolder in dirInfo)
            { 
                FileInfo[] fileInfo = NextFolder.GetFiles();        
                foreach (FileInfo NextFile in fileInfo)  //遍历所有文件
                {
                    String imgPath="";
                    Image img=img.FromFile(NextFile.Path); 
                    ToImg(img,NextFile.Name); //利用上面函数
                }
            }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式