У меня проблемы с сохранением пути к файлу документа в моей базе данных SQL. Мне нужно сохранить его, чтобы потом можно было извлечь файл на более позднем этапе.
Итак, в основном приложение делает то, что оно постоянно просматривает указанную папку c на предмет любых изменений. Поэтому, когда файл добавлен, он обнаруживает его и затем должен сохранить этот файл в базе данных. Теперь я не уверен, что лучше всего сохранять файл или просто путь к файлу?
Это код, который я сейчас тестирую:
static void Main(string[] args)
{
string path = "C:\\Documents";
MonitorDirectory(path);
Console.ReadKey();
}
private static void MonitorDirectory(string path)
{
FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
fileSystemWatcher.Path = path;
fileSystemWatcher.Created += FileSystemWatcher_Created;
fileSystemWatcher.Renamed += FileSystemWatcher_Renamed;
fileSystemWatcher.Deleted += FileSystemWatcher_Deleted;
fileSystemWatcher.EnableRaisingEvents = true;
}
private static void FileSystemWatcher_Created(object sender, FileSystemEventArgs e)
{
Console.WriteLine("File created: {0}", e.Name);
string connectionString = @"Data Source=Development-PC\SQLEXPRESS;Initial
Catalog=FileDB;Integrated Security=True";
FileStream stream = new FileStream(e.Name, FileMode.Open, FileAccess.ReadWrite);
BinaryReader reader = new BinaryReader(stream);
byte[] file = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
DateTime dateTimeVariable = DateTime.Now;
SqlCommand command;
SqlConnection connection = new SqlConnection(connectionString);
command = new SqlCommand("INSERT INTO FileTable (filename, datestamp) VALUES (@filename,
@datestamp)", connection);
command.Parameters.Add("@filename", SqlDbType.Binary, file.Length).Value = file;
command.Parameters.Add("@datestamp", SqlDbType.DateTime, file.Length).Value =
dateTimeVariable;
connection.Open();
command.ExecuteNonQuery();
}
Ошибка, которую я получаю в строке 42:
command.Parameters.Add("@filename", SqlDbType.Binary, file.Length).Value = file;
Что означает:
Необработанное исключение. System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Любая помощь будет принята с благодарностью!
Спасибо