Picture box в байтовый массив
У меня есть программа, чтобы выбрать изображение и установить это выбранное изображение в графическом окне, а затем преобразовать изображение в графическом окне в байтовый массив и сохранить базу данных сервера SQL в столбце типа изображения.
В событии нажатия кнопки обзора я выбираю файл изображения, подобный этому.
OpenFileDialog fop = new OpenFileDialog();
fop.InitialDirectory = @"Desktop";
fop.Filter = "image files|*.jpg;*.png;*.gif";
if (fop.ShowDialog() == DialogResult.OK)
{
FileStream FS = new FileStream(@fop.FileName, FileMode.Open, FileAccess.Read);
pbPartySymbol.Image = new Bitmap(fop.FileName);
MessageBox.Show("Image Imported Successfully!!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
После выбора изображения и установки его изображения в виде изображения я конвертирую изображение в виде изображения в массив байтов в событии нажатия кнопки сохранения и сохраняю массив байтов в базе данных.
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
Я вызываю такой метод.
byte[] myArr1 = imageToByteArray(pbPartySymbol.Image);
и я передаю этот байтовый массив в базу данных. и это тоже спасает. НоВСЕ добавленные изображения сохраняются следующим образом. * 0x53797374656D2E427974655B5D * Сохраненные изображения не могут быть возвращены в графическое окно в операции чтения. Что я делаю не так вЭКОНОМИЯ?
Вот что я делаю при сохранении операции в форме.
Party ptObj = new Party(myArr1);
if (new PartyOP().saveParty(ptObj))
{
MessageBox.Show("NEW data added");
}
На уровне бизнес-операций это мой код.
public Boolean saveParty(Party ptObj)
{
string query1 = "EXEC insertToParty'" + ptObj.PTSymARR + "'";
return (new DataAccessLayer().executeNonQueries(query1));
}
Вот как я установил свойство в классе Party.
class Party
{
public Party() { }
public Party(byte[] ptSym)
{
this._PTSymARR = ptSym;
}
public byte[] PTSymARR
{
get { return _PTSymARR; }
set { _PTSymARR = value; }
}
}
вот моя хранимая процедура. СОЗДАНИЕ ПРОЦЕДУРЫ insertToParty (@ptSymbol image) КАК НАЧИНАЕТСЯ НАЧАТЬ ТРАНЗАКЦИЮ НА БЕЗ НАС; - Запросить INSERT INTO Party (PTSYM) ЦЕННОСТИ (@ptSymbol);
Тип данных PTSYM - это тип данных изображения.