dsurucu
Örnek:
C# dilinde bir Word dosyasını veritabanında saklamak ve sonrasında tekrar dosya haline dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
- Dosyayı byte dizisine dönüştürmek.
- Byte dizisini veritabanında saklamak.
- Byte dizisini veritabanından çekip tekrar dosyaya dönüştürmek.
İşte bu işlemleri gerçekleştirebileceğiniz örnek bir kod:
Dosyayı Byte Dizisine Dönüştürmek
public byte[] FileToByteArray(string filePath)
{
return File.ReadAllBytes(filePath);
}
Byte Dizisini Veritabanında Saklamak
Örneğin, bir SQL
veritabanında dosyayı saklamak için aşağıdaki kodu kullanabilirsiniz:
public void SaveFileToDatabase(byte[] fileData, string fileName)
{
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "INSERT INTO Files (FileName, FileData) VALUES (@FileName, @FileData)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@FileName", fileName);
command.Parameters.AddWithValue("@FileData", fileData);
connection.Open();
command.ExecuteNonQuery();
}
}
}
Byte Dizisini Veritabanından Çekmek
public byte[] GetFileFromDatabase(int fileId)
{
byte[] fileData = null;
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT FileData FROM Files WHERE Id = @FileId";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@FileId", fileId);
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
fileData = (byte[])reader["FileData"];
}
}
}
}
return fileData;
}
Byte Dizisini Dosyaya Dönüştürmek
public void ByteArrayToFile(byte[] fileData, string outputFilePath)
{
File.WriteAllBytes(outputFilePath, fileData);
}
Tüm Süreci Birleştirmek
Aşağıdaki örnek, bir dosyayı veritabanına kaydedip, ardından tekrar dosya haline getiren tam bir örnek uygulamadır:
using System;
using System.Data.SqlClient;
using System.IO;
class Program
{
static void Main()
{
string filePath = "path_to_your_word_file.docx";
string outputFilePath = "path_to_save_retrieved_file.docx";
// Dosyayı byte dizisine dönüştür
byte[] fileData = FileToByteArray(filePath);
// Dosyayı veritabanına kaydet
SaveFileToDatabase(fileData, "SampleDocument.docx");
// Veritabanından dosyayı çek
int fileId = 1; // Veritabanında kaydedilen dosyanın ID'si
byte[] retrievedFileData = GetFileFromDatabase(fileId);
// Byte dizisini dosyaya dönüştür
ByteArrayToFile(retrievedFileData, outputFilePath);
}
public static byte[] FileToByteArray(string filePath)
{
return File.ReadAllBytes(filePath);
}
public static void SaveFileToDatabase(byte[] fileData, string fileName)
{
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "INSERT INTO Files (FileName, FileData) VALUES (@FileName, @FileData)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@FileName", fileName);
command.Parameters.AddWithValue("@FileData", fileData);
connection.Open();
command.ExecuteNonQuery();
}
}
}
public static byte[] GetFileFromDatabase(int fileId)
{
byte[] fileData = null;
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT FileData FROM Files WHERE Id = @FileId";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@FileId", fileId);
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
fileData = (byte[])reader["FileData"];
}
}
}
}
return fileData;
}
public static void ByteArrayToFile(byte[] fileData, string outputFilePath)
{
File.WriteAllBytes(outputFilePath, fileData);
}
}
Bu örnekle, bir Word dosyasını byte dizisine dönüştürüp veritabanında saklayabilir ve ardından tekrar dosya haline getirebilirsiniz. Veritabanı bağlantı dizenizi (connectionString
) uygun şekilde ayarlamayı unutmayın.