文档库

最新最全的文档下载
当前位置:文档库 > 保存文件到数据库

保存文件到数据库

using System;
using System.Collections.Generic;
using http://www.wendangku.net/doc/c35181c24028915f804dc26e.htmlponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace OfficeAnywhere
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123;database=Demo");
private void button1_Click(object sender, EventArgs e)
{
//打开文件对话框
if(openFileDialog1.ShowDialog()== DialogResult.OK){
//获取要打开的文件的路径
string path = openFileDialog1.FileName;

//获取文件名
string fileName = Path.GetFileName(path);
//读取文件中的二进制数据
byte[] data = File.ReadAllBytes(path);

//创建Sql语句@filename,@filedata 参数占位符
string sql = "insert into file_data(filename,filedata) values(@filename,@filedata)";

//创建命令
SqlCommand cmd = new SqlCommand(sql, conn);

conn.Open();//打开


//创建占位符 对应的参数
SqlParameter[] param ={
new SqlParameter("@filename",fileName),
new SqlParameter("@filedata",data)
};



cmd.Parameters.AddRange(param);//将参数和cmd绑定


cmd.ExecuteNonQuery();//执行Sql语句 数据将添加到数据库中



conn.Close();//关闭
}


}

private void button2_Click(object sender, EventArgs e)
{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)//打开
{
string path = saveFileDialog1.FileName;//获取保存文件名

string sql = "select * from File_Data where id=1";//sql语句
SqlCommand cmd = new SqlCommand(sql, conn);//创建命令
conn.Open();//打开

//创建读取器
SqlDataReader reader = cmd.ExecuteReader(
CommandBehavior.CloseConnection |
CommandBehavior.SequentialAccess);
//关闭Reader同时关闭连接| 设置读取二进制数据

while (reader.Read())//循环读取
{
//获取列中的二进制数据流
//pictureBox1.Image = Image.FromStream(
// reader.GetSqlBytes(2).Stream);

//获取列中的二进制数据 返回数据
byte[] data = reader.GetSqlBytes(2).Value;
//将数据写出到文件中
File.WriteAllBytes(path, data);



}

r

eader.Close();//关闭


}

}
}
}