大家看看那里错了,程序是正常的运行的:存入数据库:
private void button2_Click(object sender, System.EventArgs e)
{
SqlConnection cn = new SqlConnection(cnstr);
if (cn.State == ConnectionState.Closed) cn.Open();
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName;
FileInfo fi = new FileInfo(filename);
FileStream fs = fi.OpenRead();
Byte[] bytes = new byte[fs.Length];
string insertstr="insert into wordtable(wordfiles) values(@file)"; SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType=CommandType.Text;
cmd.CommandText = insertstr;
SqlParameter par = new SqlParameter("@file", SqlDbType.Image);
par.Value = bytes;
cmd.Parameters.Add(par);
cmd.ExecuteNonQuery();
MessageBox.Show("this is successful");
cn.Dispose();          
}从数据库中读出:private void button3_Click(object sender, System.EventArgs e)
{
SqlConnection cn=new SqlConnection(cnstr);
if(cn.State==ConnectionState.Closed) cn.Open();
string cmdstr="select wordfiles from wordtable where autoid="+this.textBox2.Text.Trim();
SqlCommand cmd=new SqlCommand();
cmd.Connection=cn;
cmd.CommandType=CommandType.Text;
cmd.CommandText=cmdstr;
SqlDataReader dr=cmd.ExecuteReader();
Byte[] file=null;
while(dr.Read())
{
file=(Byte[])dr[0]; }
FileStream fs;
saveFileDialog1.Filter="PDF FILE(*.PDF)|*.PDF| ALL FILE(*.*)|*.DOC";
saveFileDialog1.ShowDialog();
string filepath=saveFileDialog1.FileName;

FileInfo fi=new FileInfo(saveFileDialog1.FileName);
fs=fi.OpenWrite();
fs.Write(file,0,file.Length);
fs.Close();
MessageBox.Show("ok");
}程序是正常运行的,存入和读出的文件大小是一样的,帮助一下!!

解决方案 »

  1.   

    Byte[] file=null;
    while(dr.Read())
    {
    file=(Byte[])dr[0]; }
    =================================BinaryWriter.Write
      

  2.   

    整体存到文件中,如果文件特别大,可以考虑分段存if(dr.Read())
    {
    byte[] stream=(byte[])dr[0];
    System.IO.FileStream fs=new FileStream(filePath,FileMode.Create,FileAccess.Write);
    fs.Write(stream,0,stream.Length);
    fs.Close();
    }
      

  3.   

    我这样也不行呢??
    //FileStream fs;
    System.IO.BinaryWriter fs=null;
    saveFileDialog1.Filter="PDF FILE(*.PDF)|*.PDF| ALL FILE(*.*)|*.DOC";
    saveFileDialog1.ShowDialog();
    string filepath=saveFileDialog1.FileName;

    //FileInfo fi=new FileInfo(saveFileDialog1.FileName);
    FileStream fi=new FileStream(saveFileDialog1.FileName,FileMode.Create);
    //fs=fi.OpenWrite();
    fs.Write(file,0,file.Length);
    //fs.Write(file
    fs.Close();
    MessageBox.Show("ok");