网站设计前期沟通单,温州建设集团有限公司网站首页,做网站需要用到的语言,安微省建设厅网站图片存入ole字段#xff0c;看有的代码是获取图片的字节数组转换为base64字符串#xff0c;存入数据库#xff1b;显示图片是把base64字符串转换为字节数组再显示#xff1b;直接存字节数组可能还好一点#xff1b;
插入的时候用带参数的sql写法比较好#xff1b;用拼接…图片存入ole字段看有的代码是获取图片的字节数组转换为base64字符串存入数据库显示图片是把base64字符串转换为字节数组再显示直接存字节数组可能还好一点
插入的时候用带参数的sql写法比较好用拼接sql一般会出错
测试表有三个字段加载一个图片然后插入记录 插入以后如下第5、6条是对的3、4没插对如果要png、jpeg、gif等格式都支持写为 image1.Save(ms, image1.RawFormat) 读取并显示如下 插入记录的代码 Image image1;MemoryStream ms new MemoryStream();byte[] arr1 null; ;if (pictureBox1.Image ! null){image1.Save(ms, image1.RawFormat);arr1 new byte[ms.Length];ms.Position 0;ms.Read(arr1, 0, (int)ms.Length);//pic1 Convert.ToBase64String(arr1);}ms.Close();if (button1.Text 添加){if (textBox1.Text ){MessageBox.Show(名字不能为空, 添加信息);return;}else{string connectionString ProviderMicrosoft.ACE.OLEDB.12.0;Data Source Environment.CurrentDirectory \\mytest.mdb;string query INSERT INTO testpic (a1, a2, ppp) VALUES (?,?,?);using (OleDbConnection conn new OleDbConnection(connectionString)){using (OleDbCommand cmd new OleDbCommand(query, conn)){// 这里设置参数值注意索引对应你SQL语句中参数的位置cmd.Parameters.AddWithValue(?, textBox1.Text);cmd.Parameters.AddWithValue(?, textBox2.Text);cmd.Parameters.AddWithValue(?, arr1);conn.Open();int rowsAffected cmd.ExecuteNonQuery();conn.Close();}}textBox1.Text ;textBox2.Text ;}}
读取显示图片的代码 private void button2_Click(object sender, EventArgs e){string sql1 select * from testpic where id 6;byte[] buff null;buff achelp.GetBufferFromDB(sql1, ppp);System.IO.MemoryStream picbuf new System.IO.MemoryStream(buff);Image image Image.FromStream(picbuf, true);picbuf.Close();pictureBox1.Image image;}......//返回图片byte[]public byte[] GetBufferFromDB(string strSql, string fieldname){byte[] buff null;if (conn_str null){return null;}try{ole_connection.Open();//打开连接if (ole_connection.State ConnectionState.Closed){return null;}ole_command.CommandText strSql;ole_command.Connection ole_connection;ole_reader ole_command.ExecuteReader(CommandBehavior.Default);if (ole_reader.Read()){buff (byte[])ole_reader[fieldname];}ole_reader.Close();ole_reader.Dispose();}catch (System.Exception e){//Console.WriteLine(e.ToString());MessageBox.Show(e.Message);}finally{if (ole_connection.State ! ConnectionState.Closed){ole_connection.Close();}}return buff;}
要先执行ole_reader.Read()然后才能取ole_reader[fieldname]