ASP.NET如何存取SQL Server数据库图片2

  
   #region Windows Form Designer generated code
   /// <summary>
   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
   /// 此方法的内容。
   /// </summary>
   private void InitializeComponent()
   {
    this.button1 = new System.Windows.Forms.Button();
    this.pic1 = new System.Windows.Forms.PictureBox();
    this.button2 = new System.Windows.Forms.Button();
    this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    this.label2 = new System.Windows.Forms.Label();
    this.SuspendLayout();
    //
    // button1
    //
    this.button1.Location = new System.Drawing.Point(0, 40);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(264, 48);
    this.button1.TabIndex = 0;
    this.button1.Text = "加入新的图片";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    //
    // pic1
    //
    this.pic1.Location = new System.Drawing.Point(280, 8);
    this.pic1.Name = "pic1";
    this.pic1.Size = new System.Drawing.Size(344, 264);
    this.pic1.TabIndex = 3;
    this.pic1.TabStop = false;
    //
    // button2
    //
    this.button2.Location = new System.Drawing.Point(0, 104);
    this.button2.Name = "button2";
    this.button2.Size = new System.Drawing.Size(264, 40);
    this.button2.TabIndex = 4;
    this.button2.Text = "从数据库中恢复图像";
    this.button2.Click += new System.EventHandler(this.button2_Click);
    //
    // openFileDialog1
    //
    this.openFileDialog1.Filter = "/"图像文件(*.jpg,*.bmp,*.gif)|*.jpg|*.bmp|*.gif/"";
    //
    // label2
    //
    this.label2.Location = new System.Drawing.Point(0, 152);
    this.label2.Name = "label2";
    this.label2.Size = new System.Drawing.Size(264, 48);
    this.label2.TabIndex = 5;
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(632, 273);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
      this.label2,
      this.button2,
      this.pic1,
      this.button1});
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false);
  
   }
   #endregion
   
   /// <summary>
   /// 应用程序的主入口点。
   /// </summary>
   [STAThread]
   static void Main()
   {
    Application.Run(new Form1());
   }
  
   private void button1_Click(object sender, System.EventArgs e)
   {
    openFileDialog1.ShowDialog ();
    
    if (openFileDialog1.FileName.Trim()!="")
    {
     FileInfo fi = new FileInfo(openFileDialog1.FileName);
  
     string imgtitle=openFileDialog1.FileName;
     int imgdatalen=(int)fi.Length;
     byte[] imgdata = new byte[imgdatalen];
    
     Stream imgdatastream=fi.OpenRead();
     int n=imgdatastream.Read(imgdata,0,imgdatalen);
  
  
     if( conn.State == ConnectionState.Open)
      conn.Close();
     ConnectionString ="Integrated Security=SSPI;" + "Initial Catalog=mydb;" +"Data  Source=localhost;";
     conn.ConnectionString = ConnectionString;
  
  
   try
   {
    string mySelectQuery = "INSERT INTO ImageStore(imgtitle,imgdata) VALUES (@imgtitle, @imgdata )";
    //string mySelectQuery="UPDATE ImageStore set imgtitle=@imgtitle,imgdata=@imgdata" ;
    SqlCommand myCommand = new SqlCommand(mySelectQuery, conn);
  
    SqlParameter paramTitle = new SqlParameter("@imgtitle", SqlDbType.VarChar,50 );
    paramTitle.Value = imgtitle;
    myCommand.Parameters.Add( paramTitle);
  
    SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );
    paramData.Value = imgdata;
    myCommand.Parameters.Add( paramData );
  
    conn.Open();
    int numRowsAffected = myCommand.ExecuteNonQuery();
    conn.Close();
   }
   catch(Exception err)
   {
    MessageBox.Show("您输入名称可能在数据库中已存在或输入为空,请检查!"+err.ToString() );
   }
   finally
   {}
  }
  
  }
  
   private void Form1_Load(object sender, System.EventArgs e)
   {
   }
  
   private void button2_Click(object sender, System.EventArgs e)
   {
    //打开数据库连接
    if( conn.State == ConnectionState.Open)
     conn.Close();
    ConnectionString ="Integrated Security=SSPI;" + "Initial Catalog=mydb;" +"Data Source=localhost;";
    conn.ConnectionString = ConnectionString;
  
    // 创建数据适配器
    string sql="SELECT * FROM ImageStore" ;
    SqlCommand command = new SqlCommand(sql, conn);
   
    try
    {conn.Open();}
    catch(Exception newerr)
    {
     MessageBox.Show(" 不能打开数据联接!") ;
    }
    finally
    {}
  
    SqlDataReader dr = command.ExecuteReader();
    if(dr.Read())
    {
     FileInfo fi = new FileInfo("temp");
     FileStream myStream=fi.Open(FileMode.Create);
     byte[] mydata=((byte[])dr["imgdata"]);
     //label2.Text="您现在看到的是:"+ dr["imgtitle"].ToString();
     foreach(byte a in mydata)
     {
      myStream.WriteByte(a);
     }
    myStream.Close();
    Image myImage=Image.FromFile("temp") ;
    pic1.Image=myImage;
    pic1.Refresh();
    dr.Close ();
  
   }
   else
   {
    MessageBox.Show("没有成功读入数据!") ;
   
   }
  
   conn.Close();
  
  }
  
  }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值