存取图片时先读取图片,我们正常情况下是用Image控件读取图片来显示,在读了Image.image中图片时要把读取的数据放入stream中如下:

MemoryStream msImg = new MemoryStream();

Image.image.Save(msImg ,//图片格式//)

用以下得到图片格式,在读取文件中可以通过FileInfo fi = new FileInfo(文件)得到打开的文件信息fi.Extension.ToString()得到文件的格式,fi.Name.ToString()得到文件的名称,fi.Length得到文件的大小.

在此fi.Extension.ToString()得到的只是.txt .exl  .jpg的,而在上面的读取图片放入流中的图片格式如下所示:

switch (strVision.ToUpper())
            {
                case ".JPG":
                    return ImageFormat.Jpeg;
                    break;
                case ".GIF":
                    return ImageFormat.Gif;
                    break;
                case ".BMP":
                    return ImageFormat.Bmp;
                    break;
                case ".ICON":
                    return ImageFormat.Icon;
                    break;
                case ".PNG":
                    return ImageFormat.Png;
                    break;
                default:
                    return null;
                    break;
            }

/// 新增或修改有图片的SQL
        /// </summary>
        /// <param name="strSQL">传入组好的SQL语名其中图片值用占位符表示</param>
        /// <param name="strFeildName">数据库中存储图片的字段名称</param>
        /// <param name="Img">传入Image属性</param>
        /// <returns></returns>
        public int ExecutImgSql(string strSQL,string strFeildName, MemoryStream Img)
        {
            int intNum = 0;
            try
            {
                OleDbConnection Conn = new OleDbConnection(ConnStr);
                Conn.Open();
                OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
                Cmd.Parameters.Add(strFeildName, OleDbType.Binary);
                Cmd.Parameters[strFeildName].Value = Img.ToArray();//MemoryStream 转成数组存入
                intNum = Cmd.ExecuteNonQuery();
                Conn.Close();
            }
            catch (OleDbException e)
            {

            }
            return intNum;
        }

 

注意这里是通过Cmd.Parameters.Add(strFeildName, OleDbType.Binary)添加相对应的字段及字段类型,再通过Cmd.Parameters[strFeildName].Value 把值符过去.图片存在数据库中是以byte[]存入的,在ACCESS中应用OleDbType.Binary对应.再些要把 MemoryStream Img转化为数组
posted on 2009-12-29 19:40  Blade  阅读(199)  评论(0编辑  收藏  举报