using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
SqlCommand sqlCommand1 = null;
SqlConnection sqlConnection1 = new SqlConnection(@"data source=LZC-FUJITSU;uid=sa;pwd=sa;database=Test");
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Saves picture to database.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSave_Click(object sender, EventArgs e)
{
string pathName;
if (this.openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
pathName = this.openFileDialog1.FileName;
Image img = Image.FromFile(pathName);
this.pictureBox1.Image = img;
//将图像读入到字节数组
FileStream fs = new FileStream(pathName, FileMode.Open, FileAccess.Read);
byte[] buffByte = new byte[fs.Length];
fs.Read(buffByte, 0, (int)fs.Length);
fs.Close();
fs = null;
//建立Command命令
string comm = @"Insert into table1(img,name) values(@img,@name)";
this.sqlCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlCommand1.CommandType = System.Data.CommandType.Text;
this.sqlCommand1.CommandText = comm;
this.sqlCommand1.Connection = this.sqlConnection1;
//创建Parameter
this.sqlCommand1.Parameters.Add("@img", System.Data.SqlDbType.Image);
this.sqlCommand1.Parameters[0].Value = buffByte;
this.sqlCommand1.Parameters.Add("@name", System.Data.SqlDbType.VarChar);
this.sqlCommand1.Parameters[1].Value = pathName.Substring(pathName.LastIndexOf("\\") + 1);
try
{
this.sqlConnection1.Open();
this.sqlCommand1.ExecuteNonQuery();
this.sqlConnection1.Close();
}
catch (System.Exception ee)
{
MessageBox.Show(ee.Message);
}
buffByte = null;
}
}
/// <summary>
/// Reads picture from database.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOpen_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"data source=LZC-FUJITSU;uid=sa;pwd=sa;database=Test");
conn.Open();
SqlCommand cmd = new SqlCommand("select img from table1 where password='2'", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
MemoryStream buf = new MemoryStream((byte[])reader[0]);
Image image = Image.FromStream(buf, true);
pictureBox1.Image = image;
}
conn.Close();
}
}
}