¿Puede winform en vs2008 cargar un documento de Word y guardarlo en SQL, y luego leerlo y descargarlo? Proporcione el código o método.
Los documentos de Word son datos mixtos de gráficos y texto, que se pueden guardar utilizando la tecnología FILESTREAM de SQL2008. El tamaño de los datos no está limitado por el límite de 2G de 2005.
Con respecto a la creación, lectura y escritura de FILESTREAM (la escritura incluye agregar y sobrescribir), para obtener más detalles, consulte la Guía de programación de C# editada por Dan Yao y publicada por Tsinghua University Press en enero de 2011. Aquí está el código para escribir un archivo de Word en el Columna FILESTREAM:
privado?void?Form1_Load(object?sender,?EventArgs?e)
{ string?connectionString?=
"Data?Source= .;Initial?Catalog=AdventureWorks2008 ;Integrated?Security=True"; usando?(SqlConnection?connection?=?new?SqlConnection(connectionString)) {
connection.Open();
SqlCommand?command?= ?new?SqlCommand("",?connection);
command.CommandText?=?"select?Photo.PathName(),?" "GET_FILESTREAM_TRANSACTION_CONTEXT?()?" "from?dbo.employees? e?WHERE?e.EmployeeID=2";
SqlTransaction?tran?=?connection.BeginTransaction(IsolationLevel.ReadCommitted);
command.Transaction ?=?tran;
p>
usando?(SqlDataReader?reader?=?command.ExecuteReader())
{ mientras?(reader.Read()) {
string?path?= ?reader.GetString(0);?
byte[]?transactionContext?=?reader.GetSqlBytes(1).Buffer;
//Generar SqlFileStream
Stream?fileStream?=?new?SqlFileStream(ruta, (byte[])reader.GetValue(1), FileAccess.ReadWrite, FileOptions.SequentialScan,?0);
//Leer contenido como sección de palabras, escrito en la secuencia
Stream?s?=?new?FileStream(@"..\..\Word1.doc?",? FileMode.Open);?
s.CopyTo(fileStream);
fileStream.Close();
s.Close(); >
}
tran.Commit(); //Commit transacción}
}
El código anterior solo se puede compilar en VS2010, porque el La clase FileStream de VS2008 no tiene un método CopyTo. Que el segundo piso diga que es imposible puede significar esto.
La siguiente figura lee la tabla Production.Document en la base de datos de ejemplo AdventureWorks2008, y sus datos FILESTREAM son un archivo de Word.