实例不含数据库,可参考其思路
//FileName Form1.csusing System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;using System.IO;namespace DBImage{/// <summary>/// Form1 的摘要说明。/// </summary>public class Form1 : System.Windows.Forms.Form{private System.Windows.Forms.ListBox listBox1;private System.Windows.Forms.PictureBox pictureBox1;private System.Windows.Forms.TextBox textBox1;private System.Windows.Forms.Button button1;private System.Windows.Forms.Button button2;private System.Windows.Forms.Button button3;/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.Container components = null;private System.Windows.Forms.Label label1;private System.Windows.Forms.Button button4;DataSet MyDataSet;SqlConnection MySqlConn;SqlDataAdapter MySqlAdapter;public Form1(){//// Windows 窗体设计器支持所必需的//InitializeComponent();}private void ShowDBImage(){byte[] bytes=(byte[])MyDataSet.Tables[0].Rows[this.listBox1.SelectedIndex][1];MemoryStream memStream=new MemoryStream(bytes);try{Bitmap MyImage = new Bitmap(memStream);this.pictureBox1.Image= MyImage;}catch{MessageBox.Show(this,"读取数据库中的图像信息失败!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);this.pictureBox1.Image=null;}}/// <summary>/// 清理所有正在使用的资源。/// </summary>protected override void Dispose( bool disposing ){if( disposing ){if (components != null) {components.Dispose();}}base.Dispose( disposing );}#region Windows 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.listBox1 = new System.Windows.Forms.ListBox();this.pictureBox1 = new System.Windows.Forms.PictureBox();this.textBox1 = new System.Windows.Forms.TextBox();this.button1 = new System.Windows.Forms.Button();this.button2 = new System.Windows.Forms.Button();this.button3 = new System.Windows.Forms.Button();this.label1 = new System.Windows.Forms.Label();this.button4 = new System.Windows.Forms.Button();this.SuspendLayout();// // listBox1// this.listBox1.ItemHeight = 12;this.listBox1.Location = new System.Drawing.Point(5, 24);this.listBox1.Name = "listBox1";this.listBox1.Size = new System.Drawing.Size(64, 76);this.listBox1.TabIndex = 0;this.listBox1.SelectedIndexChanged = new System.EventHandler(this.listBox1_SelectedIndexChanged);// // pictureBox1// this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;this.pictureBox1.Location = new System.Drawing.Point(80, 16);this.pictureBox1.Name = "pictureBox1";this.pictureBox1.Size = new System.Drawing.Size(176, 80);this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;this.pictureBox1.TabIndex = 1;this.pictureBox1.TabStop = false;// // textBox1// this.textBox1.Location = new System.Drawing.Point(5, 104);this.textBox1.Multiline = true;this.textBox1.Name = "textBox1";this.textBox1.Size = new System.Drawing.Size(352, 112);this.textBox1.TabIndex = 2;this.textBox1.Text = "textBox1";// // button1// this.button1.Location = new System.Drawing.Point(264, 8);this.button1.Name = "button1";this.button1.Size = new System.Drawing.Size(93, 23);this.button1.TabIndex = 3;this.button1.Text = "浏览图像";this.button1.Click = new System.EventHandler(this.button1_Click);// // button2// this.button2.Location = new System.Drawing.Point(264, 32);this.button2.Name = "button2";this.button2.Size = new System.Drawing.Size(93, 23);this.button2.TabIndex = 4;this.button2.Text = "删除图像";this.button2.Click = new System.EventHandler(this.button2_Click);// // button3// this.button3.Location = new System.Drawing.Point(264, 56);this.button3.Name = "button3";this.button3.Size = new System.Drawing.Size(93, 23);this.button3.TabIndex = 5;this.button3.Text = "保存图像";this.button3.Click = new System.EventHandler(this.button3_Click);// // label1// this.label1.Location = new System.Drawing.Point(8, 8);this.label1.Name = "label1";this.label1.Size = new System.Drawing.Size(64, 16);this.label1.TabIndex = 6;this.label1.Text = "选择图像:";// // button4// this.button4.Location = new System.Drawing.Point(264, 80);this.button4.Name = "button4";this.button4.Size = new System.Drawing.Size(93, 23);this.button4.TabIndex = 7;this.button4.Text = "关闭程序";// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(360, 221);this.Controls.Add(this.button4);this.Controls.Add(this.label1);this.Controls.Add(this.button3);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.Controls.Add(this.textBox1);this.Controls.Add(this.pictureBox1);this.Controls.Add(this.listBox1);this.MaximizeBox = false;this.Name = "Form1";this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;this.Text = "演示操作数据库中的图像字段";this.Load = new System.EventHandler(this.Form1_Load);this.ResumeLayout(false);}#endregion/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main() {Application.Run(new Form1());}private void Form1_Load(object sender, System.EventArgs e){this.MySqlConn=new SqlConnection("server=COMPUTERNAME; integrated security=sspi; database=pubs");this.MySqlAdapter=new SqlDataAdapter("select * from pub_info","server=COMPUTERNAME; integrated security=sspi; database=pubs");SqlCommandBuilder MyBuilder=new SqlCommandBuilder(this.MySqlAdapter);this.MySqlAdapter.UpdateCommand=MyBuilder.GetUpdateCommand();this.MyDataSet=new DataSet();this.MySqlAdapter.Fill(this.MyDataSet,"pub_info");//将text1Box1的Text属性绑定到dataset中的pub_info表的pr_info字段this.textBox1.DataBindings.Add(new Binding("Text",this.MyDataSet,"pub_info.pr_info"));for(int i=0;i<this.MyDataSet.Tables[0].Rows.Count;i ){this.listBox1.Items.Add(this.MyDataSet.Tables[0].Rows[i][0]);}this.listBox1.SetSelected(0,true);}private void button1_Click(object sender, System.EventArgs e){//浏览图像OpenFileDialog MyFileDialog=new OpenFileDialog();MyFileDialog.ShowDialog();if(MyFileDialog.FileName.Trim()!=""){Stream MyStream =MyFileDialog.OpenFile();int length=(int)MyStream.Length;byte[] bytes=new byte[length];MyStream.Read(bytes,0,length);MyStream.Close();this.MyDataSet.Tables[0].Rows[this.listBox1.SelectedIndex][1]=bytes;ShowDBImage();}}private void button2_Click(object sender, System.EventArgs e){//删除图像byte[] bytes =System.Text.Encoding.Unicode.GetBytes("");int iIndex=this.listBox1.SelectedIndex;this.MyDataSet.Tables[0].Rows[iIndex][1]=bytes;this.listBox1.SetSelected(iIndex 1,true);ShowDBImage();}private void button3_Click(object sender, System.EventArgs e){//保存图像this.MySqlAdapter.Update(this.MyDataSet,"pub_info"); MessageBox.Show(this,"保存数据库中的图像操作成功!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e){//选择图像ShowDBImage();this.BindingContext[this.MyDataSet,"pub_info"].Position=this.listBox1.SelectedIndex;}}}
评论