使用C#.NET,ASP.NET存储和搜索word文档

时间:2010-02-13 10:33:22

标签: c# asp.net sql-server

我想在数据库中存储单词文档(.doc),我需要提供对Word文档集的搜索,并突出显示单词。

我正在使用VS2005 - > ASP.NET,C#.NET,SQL Server。

3 个答案:

答案 0 :(得分:2)

您可以将其作为BLOB (Binary Large OBject).

存储在数据库中

类似的东西会起作用

string filePath = "";
string connectionString = "";
FileStream stream = 
   new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] file = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();

SqlCommand command;
SqlConnection connection = new SqlConnection(connectionString);
command = 
   new SqlCommand("INSERT INTO FileTable (File) Values(@File)", connection);
command.Parameters.Add("@File", SqlDbType.Binary, file.Length).Value = file;
connection.Open();
command.ExecuteNonQuery();

答案 1 :(得分:1)

您可以将文档存储为BLOB,如上所述。然后,您需要一些索引内容的方法,以便您可以搜索。

您可以粗略地将Word文档的内容解压缩为文本,将其与文档一起存储,然后使用关键字查询此新列。

但这并不是特别快或有效。看起来好像全文索引可以解决这个问题:http://www.codeproject.com/KB/architecture/sqlfulltextindexing.aspx 显然可以将Office文档编入索引。

输入关键字后,您可以查询全文索引,找到匹配的文档,然后打开文档并使用Office Primary Interop assesmbiles或VSTO突出显示这些文字。

答案 2 :(得分:0)

您的网站是否公开?一个好的非常规解决方案是使用谷歌。输入google:

网站:www.yoursite.com文件类型:doc searchTerm

这是一个例子。请注意,“查看HTML”链接会突出显示文本。 WhiteHouse.gov OMB Search

如果您想获得幻想,可以使用WebRequest对象在服务器上向Google发出请求,然后解析响应,只显示您网页上的ViewHtml链接。