В настоящее время я работаю над приложением формы Windows, в котором мне нужно сохранить изображение в локальном каталоге, а изображение - в базе данных SqlServer. На главной форме я использовал кнопку просмотра изображения, которая показывает диалог файла при нажатии. И имя, и путь к изображению хранятся в двух отдельных строках, к которым я должен получить доступ из другого метода, который на самом деле хранит и заголовок, и путь к изображению вместе с некоторыми другими данными в базе данных.
Я использовал следующий код для кнопки просмотра изображения.
private void btnBrowseImage_Click(object sender, EventArgs e)
{
string saveDirectory = @"D:\ProductImages\";
OpenFileDialog fileDialog = new OpenFileDialog();
if (fileDialog.ShowDialog() == DialogResult.OK)
{
if(!Directory.Exists(saveDirectory))
{
Directory.CreateDirectory(saveDirectory);
}
string fileName = Path.GetFileName(fileDialog.FileName);
string fileSavePath = Path.Combine(saveDirectory, fileName);
File.Copy(fileDialog.FileName, fileSavePath, true);
string imgTitle = Path.GetFileName(fileName);
string imgPath = fileSavePath;
}
}
Теперь я хочу получить доступ к обеим переменным, содержащим имя файла и путь к файлу соответственно, из моей кнопки «Добавить в базу данных». Я передаю эти две переменные вместе с productName, unitPrice и количеством в метод AddProduct в моем вызове Products, где они фактически будут добавлены в базу данных, как показано в событии btnAddToDatabase_Click.
private void btnAddToDatabase_Click(object sender, EventArgs e)
{
string productName, unitPrice, quantity, image, imageTitle;
productName = txtProductName.Text.Trim();
unitPrice = txtUnitPrice.Text.Trim();
quantity = txtQuantity.Text.Trim();
image =
imageTitle =
Products.AddProduct(productName, quantity, unitPrice);
FillGrid();
btnClearFields_Click(sender, e);
}
Я много пробовал, но не повезло, так как эти переменные не могут быть доступны напрямую из события кнопки обзора, чтобы я мог найти их там, где я хочу. Есть ли способ, который может помочь мне без сбоев?