//这个方法是浏览文件对象
privatevoidbutton1_Click(objectsender,EventArgse)
{
//用户打开文件浏览
using(OpenFileDialogdialog=newOpenFileDialog())
{
//只能单选一个文件
dialog.Multiselect=false;
//选择一个文件
if(dialog.ShowDialog()==DialogResult.OK)
{
try
{
//把选择的文件路径给txtPath
this.textBox1.Text=dialog.FileName;
}
catch(Exceptionex)
{
//抛出异常
throw(ex);
}
}
}
}
//关闭
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
//把文件转成二进制流出入数据库
privatevoidbutton2_Click(objectsender,EventArgse)
{
FileStreamfs=newFileStream(textBox1.Text,FileMode.Open);
BinaryReaderbr=newBinaryReader(fs);
Byte[]byData=br.ReadBytes((int)fs.Length);
fs.Close();
stringconn="server=.;database=testDB;Uid=sa;Pwd=sa";
SqlConnectionmyconn=newSqlConnection(conn);
myconn.Open();
stringstr="insertintopro_table(pro_name,pro_file)values('测试文件',@file)";
SqlCommandmycomm=newSqlCommand(str,myconn);
mycomm.Parameters.Add("@file",SqlDbType.Binary,byData.Length);
mycomm.Parameters["@file"].Value=byData;
mycomm.ExecuteNonQuery();
myconn.Close();
}
//从数据库中把二进制流读出写入还原成文件
privatevoidbutton4_Click(objectsender,EventArgse)
{
stringconn="server=.;database=testDB;Uid=sa;Pwd=sa";
stringstr="selectpro_filefrompro_tablewherepro_name='测试文件'";
SqlConnectionmyconn=newSqlConnection(conn);
SqlDataAdaptersda=newSqlDataAdapter(str,conn);
DataSetmyds=newDataSet();
myconn.Open();
sda.Fill(myds);
myconn.Close();
Byte[]Files=(Byte[])myds.Tables[0].Rows[0]["pro_file"];
BinaryWriterbw=newBinaryWriter(File.Open("D:\\2.rdlc",FileMode.OpenOrCreate));
bw.Write(Files);
bw.Close();
}