方法:C#在WinForm中如何将Image存入SQL2000和取出显示

//保存   
  sql="insert   into   p_ry_photo(id,photo)   values   (‘"+id+"‘,@i)";   
  SqlCommand   cmd=new   SqlCommand(sql,CommonVar.SqlConDataBase);   
  MemoryStream   s   =   new   MemoryStream();   
  picPhoto.Image.Save(s,System.Drawing.Imaging.ImageFormat.Jpeg);   
  byte[]   b   =   s.ToArray();   
  s.Close();   
  cmd.Parameters.Add("@i",SqlDbType.Image,(int)b.Length);   
  cmd.Parameters["@i"].Value=b;   
  cmd.ExecuteNonQuery();

//读取图象

private   void   Readphoto(string   id)   
  {   
    try   
      {   
          string   ls_sql="select   photo   from   p_ry_photo   where   id=‘"+id+"‘";   
          this.picPhoto.Image=null;   
          this.picPhoto.Refresh();   
          SqlCommand   cmd=new   SqlCommand(ls_sql,CommonVar.SqlConDataBase);   
          SqlDataReader   reader=cmd.ExecuteReader();   
          while(reader.Read())   
              {   
                  byte[]   b   =   (byte[])reader[0];   
                  MemoryStream   s   =   new   MemoryStream(b);   
                  Bitmap   bmp   =   new   Bitmap(s);   
                  System.Drawing.Image   image   =   bmp;   
                  picPhoto.Image   =   image;   
                  s.Close();   
                  }   
            reader.Close();   
        }   
  catch(Exception   ex)   
  {   
        MessageBox.Show(ex.Message);   
  }   
  }

建议将上传图片以文件形式保存,然后在数据库中存入路径。数据库读写图片耗时太长,很不划算。

时间: 2024-12-29 04:29:43

方法:C#在WinForm中如何将Image存入SQL2000和取出显示的相关文章

c#在WinForm中重写ProgressBar控件(带%的显示)

#region 定义textProgressBar控件的类 namespace csPublish { [ToolboxItem(true)] class textProgressBar : System.Windows.Forms.ProgressBar { [System.Runtime.InteropServices.DllImport("user32.dll ")] static extern IntPtr GetWindowDC(IntPtr hWnd); [System.R

另一种在WINFORM中使用XNA的方法

之前在写化学分子模型制作程序的时候,使用一种方法,将WINFORM控件嵌入到XNA窗体中,从而实现了即使用WINFORM窗体控件又使用XNA.最近在写另一个物理运动学课件制作程序,同样使用XNA,但从另一个角度实现了WINFORM控件和XNA共存,并且在编码上更简单一些. 一.创建XNA工程并添加窗体 向工程添加窗体MainForm,并修改GAME1为MainGame.我们把XNA内容绘制到MainForm上,其实绘制到任何有句柄的控件都可以,即使我们绘制到桌面也未尝不可.但更少的控件能够使我们

Winform中打开网页页面的方法

1.首先比较简单的我们知道有类似的方法如下 System.Diagnostics.Process.Start("http://www.baidu.com"); 2.比较灵活一点,可以定义窗口大小,我们要实现网页中脚本打开页面的方法,即window.open 那么,我们必然会想,如何调用页面的脚本呢?其实可以利用WebBrowser来实现 //连接 string url ="http://www.baidu.com"; //定义脚本 string script =@&

转载:WinForm中播放声音的三种方法

转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753094 声音文件folder.wav放置在bin目录下debug下 1.通过API调用 using System.Runtime.InteropServices; [DllImport("winmm.dll")] public static extern bool PlaySound(st

C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中 在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中.而用

WinForm中变Enter键为Tab键实现焦点转移的方法

if (e.KeyCode == Keys.Enter) { //this.SelectNextControl(this.ActiveControl,true, true, true, true); SendKeys.Send("{Tab}"); //向活动应用程序发送击键 注意格式:Send("{Tab}");中的{} } /// <summary> /// 窗体控件控制相关的方法 /// </summary> public class C

winform中的ComboBox同时设置text和value的方法

winform中的ComboBox不能像webform中的dropdownlist控件一样,在属性中可以同时设置text和value值,可以通过编写一个新类来实现这个功能. 1.首先在form1中添加一个新类ComboBoxItem: public class ComboBoxItem  {   private string _text=null;   private object _value=null;   public string Text{get{return this._text;}

C#在WinForm中怎样让多行TEXTBOX的换行

要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true.  要让TextBox里面的文本换行大家往往会想到直接在要换行的地方加个转义的换行符"\n": [csharp] view plaincopyprint? this.textBoxDescription.Text = "操作说明\nESC\t最小化\nALT+F4\t退出\nShift+F6\t设置访问地址"; this.textBoxDescription.

C# WinForm中Show与ShowDialog

show()与showDialog()的区别 2010-06-05 14:22:51|  分类: c#学习|举报|字号 订阅 A.WinForm中窗体显示  显示窗体可以有以下2种方法:  Form.ShowDialog方法 (窗体显示为模式窗体)  Form.Show方法 (窗体显示为无模式窗体) 2者具体区别如下:  1.在调用Form.Show方法后,Show方法后面的代码会立即执行  2.在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码  3.当窗体显