C#Winform在数据库中读取图片文件和上传数据文件

来源:互联网 发布:nba2k16捏脸数据游侠网 编辑:程序博客网 时间:2024/05/18 08:01
读取数据库图片字段方法:
  protected void LoadPicture()        {            Image img = null;            if (this.gl_studentid.Length==0)            {                img = Image.FromFile("NoPicture.png");//如果数据库中没有图片则加载NoPicture.png这张图片                this.pictureBox1.Image = img;                return;            }            string sql = "select * from student where studentid='" + gl_studentid + "'";            DataTable dt = DBUtil.GetData(sql);            if (dt.Rows.Count>0)            {                try  //用try 做判断 ,因为转化过程可能出错                {                    byte[] bytes = (byte[])dt.Rows[0]["img"];                    MemoryStream ms = new MemoryStream(bytes);  //核心方法  将图片加载到内存流中                    this.pictureBox1.Image = Image.FromStream(ms);                }                catch (Exception)                {                    img = Image.FromFile("NoPicture.png");                    this.pictureBox1.Image=img;                }            }                       }
向数据库中上传图片文件方法:(这里方便采用修改数据库的图片文件,原理相同)
       private void btnSubmit_Click(object sender, EventArgs e)        {            string filePath = this.txtFilePath.Text.ToString();            if (filePath.Length==0)            {                MessageBox.Show("请选择图片!");                return;            }            if (gl_studentid.Length==0)            {                MessageBox.Show("请选择要修改的记录!");            }            string sql = "update student set img=@img where studentid=@studentid";            SqlParameter p1 = new SqlParameter("@img", SqlDbType.Image);                        FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);            byte[] bytes = new byte[fs.Length];            fs.Seek(0, SeekOrigin.Begin);  //定义开始读文件的位置,为0位置  SeekOrigin.Begin意为设置0为一个开始标志位            fs.Read(bytes, 0, (int)fs.Length);            p1.Value = bytes;                       SqlParameter p2 = new SqlParameter("@studentid", gl_studentid);            using (SqlConnection conn=new SqlConnection(sqlconn))            {                conn.Open();                SqlCommand cmd = new SqlCommand();                cmd.Connection = conn;                cmd.CommandText = sql;                cmd.Parameters.Add(p1);                cmd.Parameters.Add(p2);                cmd.ExecuteNonQuery();                fs.Close();                fs.Dispose();                MessageBox.Show("图片修改成功!");                this.LoadPicture();            }        }

0 0
原创粉丝点击