using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace ReportManage
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (OpenFileDialog dialog = new OpenFileDialog())
{
//只能单选一个文件
dialog.Multiselect = false;
//选择一个文件
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
//把选择的文件路径给txtPath
this.textBox1.Text = dialog.FileName;
}
catch (Exception ex)
{
//抛出异常
throw (ex);
}
}
}
}
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
Byte[] byData = br.ReadBytes((int)fs.Length);
fs.Close();
ERPEntities db = new ERPEntities();
report r = new report();
// string aFirstName = aFile.Substring(aFile.LastIndexOf("\\") + 1, (aFile.LastIndexOf(".") - aFile.LastIndexOf("\\") - 1)); //文件名
r.reportname = this.textBox1.Text;
r.reportfile = byData;
db.report.Add(r);
db.SaveChanges();
//string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
//SqlConnection myconn = new SqlConnection(conn);
//myconn.Open();
//string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)";
//SqlCommand mycomm = new SqlCommand(str, myconn);
//mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length);
//mycomm.Parameters["@file"].Value = byData;
//mycomm.ExecuteNonQuery();
//myconn.Close();
}
private void button3_Click(object sender, EventArgs e)
{
string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
string str = "select pro_file from pro_table where pro_name='测试文件' ";
SqlConnection myconn = new SqlConnection(conn);
SqlDataAdapter sda = new SqlDataAdapter(str, conn);
DataSet myds = new DataSet();
myconn.Open();
//sda.Fill(myds);
//myconn.Close();
ERPEntities db = new ERPEntities();
byte[] Files = db.report.FirstOrDefault().reportfile;
BinaryWriter bw = new BinaryWriter(File.Open("D:\\2.pdf", FileMode.OpenOrCreate));
bw.Write(Files);
bw.Close();
}
}
}
数据库设计如下(二进制 选择图片类型 ,其他类型最多智能保存8000个byte 不够存)