当前位置:编程学习 > C#/ASP.NET >>

我在做一个OpenFileDialog得图片存取我把图片装换成了二进制数据库字段是image,去出来装换成流用pictureBox输出却是无效参数.. 求解

 string fName;
            OpenFileDialog openFileDialog = new OpenFileDialog();//实例化
            openFileDialog.InitialDirectory = "e:\\141\\";//打开的默认路径
            openFileDialog.Filter = "图像文件 (*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG";
            openFileDialog.RestoreDirectory = true;
            openFileDialog.FilterIndex = 1;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                fName = openFileDialog.FileName;
                textBox1.Text = File.ReadAllText(fName);
                FileStream fs = new FileStream(fName, FileMode.Open);
                byte[] imgbt = new byte[fs.Length];
                BinaryReader br = new BinaryReader(fs);
                imgbt = br.ReadBytes(Convert.ToInt32(fs.Length));
                string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + imgbt + "')";
                DAL.SqlHelper.ExecuteDataset(DAL.SqlHelper.conn, CommandType.Text, sql_class);
                DataTable dr = BLL.Factory.MadeFactory<ImageTiale>("ImageTiale").getAll();
                if (dr.Rows[0]["images"] != DBNull.Value)
                {
                    MemoryStream ms = new MemoryStream((byte[])imgbt);//把照片读到MemoryStream里     
                    Image imageBlob = Image.FromStream(ms, true);//用流创建Image  
                    pictureBox1.Image = imageBlob;//输出图片      
                }
                else//照片字段里没值,清空pb      
                {
                    pictureBox1.Image = null;
                }

            }

我在做一个OpenFileDialog得图片存取我把图片装换成了二进制数据库字段是image,去出来装换成流用pictureBox输出却是无效参数.. 求解,以上是我代码 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------   string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + imgbt + "')";

图片不能这样向数据库中插入的 --------------------编程问答--------------------
引用 3 楼  的回复:
string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + imgbt + "')";

图……
 那应该怎么插入?难怪我插入读出来以后 维数少了很多. --------------------编程问答-------------------- 二进制流的话,还是要用SQLParameter传入。 --------------------编程问答--------------------
引用 5 楼  的回复:
二进制流的话,还是要用SQLParameter传入。
  SqlParameter sp = new SqlParameter("@name", buffen);
            string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + sp + "')";
            DAL.SqlHelper.ExecuteDataset(DAL.SqlHelper.conn, CommandType.Text, sql_class);
            byte[] MyData = new byte[0];
            DataTable dr = BLL.Factory.MadeFactory<ImageTiale>("ImageTiale").getAll();
            MyData = (byte[])dr.Rows[0]["Images"];//读取图片的位流
            MemoryStream mystream = new MemoryStream(MyData);
            pictureBox1.Image = Image.FromStream(mystream);//在控件中显示

我是这样插入,还是参数无效啊, 大哥,可以具体些吗?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,