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控件上