最近,在写程序时,用到了Image字段,以前也没用过,所以就试了试。代码如下:
数据库中就三个字段:ID ( varchar(5) ) ,Name ( varchar(20) ), picture ( image )
private void WriteDataBase(string fileName) //fileName上传图片的路径名
{
SqlConnection conn = new SqlConnection("Server=.;DataBase=student;Integrated Security=true;");
SqlCommand comm = new SqlCommand("insert into [Name] values (@stuID,@stuName,@stuImage)", conn);
FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read);
Byte[] bytes = new Byte[file.Length];
file.Read(bytes, 0, bytes.Length);
file.Close();
SqlParameter[] para ={
new SqlParameter("@stuID",SqlDbType.VarChar,5),
new SqlParameter("@stuName",SqlDbType.VarChar,50),
new SqlParameter("@stuImage",SqlDbType.Image,bytes.Length)
};
para[0].Value = this.textBox1.Text.Trim();
para[1].Value = this.textBox2.Text.Trim();
para[2].Value = bytes;
foreach (DbParameter aa in para)
{
comm.Parameters.Add(aa);
}
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
读取过后,写到picturebox时代码如下:
private void button3_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=.;DataBase=student;Integrated Security=true;");
SqlCommand comm = new SqlCommand("select * from [Name]", conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds, "Name");
MemoryStream ms = new MemoryStream((byte[])ds.Tables[0].Rows[4][2]);
pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox2.Image = Image.FromStream(ms);
}