当前位置:首页 > 数据库 > Sqlserver

C# 图片存入SQL Server数据库

       OpenFileDialog openfiledialog1 = new OpenFileDialog();
            if (openfiledialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = openfiledialog1.FileName;//文件路径            }

            string imageName = DateTime.Now.ToString("yyyymmddhhMMss");//生成文件名到数据库
            
            FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);
            Byte[] byData = br.ReadBytes((int)fs.Length);//生成二进制流            fs.Close();
            //将图片转化为二进制流,存入数据库string conn = "server=.;database=ImageDB;Uid=sa;Pwd=1234 ";
            SqlConnection myconn = new SqlConnection(conn);
            myconn.Open();
            string str = "insert into ImageFile (ImageName,ImageContext) values(@name,@file)";
            SqlCommand mycomm = new SqlCommand(str, myconn);
            mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length);
            mycomm.Parameters["@file"].Value = byData;

            mycomm.Parameters.Add("@name", SqlDbType.NVarChar,50);
            mycomm.Parameters["@name"].Value = imageName;
            mycomm.ExecuteNonQuery();//将二进制流写入数据库,对应数据库IMAGE类型            myconn.Close();

            //将二进制流转化为IMAGE
            str = "select top 1 ImageContext from ImageFile where ImageName=‘" + imageName + "";
            myconn = new SqlConnection(conn);
            SqlDataAdapter sda = new SqlDataAdapter(str, conn);
            DataSet myds = new DataSet();
            myconn.Open();
            sda.Fill(myds);
            myconn.Close();
            Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["ImageContext"];
            MemoryStream ms = new MemoryStream(Files);
            Image i = Image.FromStream(ms);
            pictureBox1.Image = i;//绑定到pictureBox1控件上

 

原文:http://www.cnblogs.com/mybky/p/4513633.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐