回 帖 发 新 帖 刷新版面

主题:[活动]求救!C# 读取image字段的问题

通过以下代码将word文件的内容以字节的形式保存到数据库的image字段后,
怎样将image字段的内容写回word文件呢??

byte[] content = new byte[info.Length];    //info为对应以读方式打开的word文件
FileStream stream = info.OpenRead();
stream.Read(content, 0, content.Length);  //将word内容读入到byte[]中
stream.Close();
InsertCommand.Parameters["@Content"].Value = content;
try
{
    conn.Open();
    InsertCommand.ExecuteNonQuery();
}
finally
{
    conn.Close(); 
}

我按以下方式实现,可是word文件的内容为乱码:[em10]
SqlDataReader reader = SelectCommand.ExecuteReader();
if (reader.HasRows)
{
    reader.Read();
    FileStream stream = new FileStream(@"F:\11.doc",FileMode.OpenOrCreate,FileAccess.Write);
    if (stream.CanWrite)
    {
        byte[] arr = (byte[])reader[2];
        stream.Write(arr, 0, arr.Length);
        MessageBox.Show(arr.ToString());    //输出结果为System.Byte[],为什么呢??
    }
    stream.Close();
}
reader.Close();

回复列表 (共3个回复)

沙发

流文件不能打开DOC ,所以是乱码,System.Text.EndCoding.?
可  引用Microsoft.office.word来读写DOC 文件
最简单,加个webBrowser控件,webBrowser.Navigator("path")就可显示了

板凳

写入数据库的Word文件长为24K,为什么读出来的字节数始终是50呢?
WebBrowser是读出文件,主要问题是现在写入Word文件时仅写入50个字节,并且还是乱码.

3 楼

写入数据库的Word文件长为24K,为什么从数据库读出来的字节数始终是50字节呢?
WebBrowser是读出文件内容显示的控件吧。

我来回复

您尚未登录,请登录后再回复。点此登录或注册