var command = new MySql.Data.MySqlClient.MySqlCommand();
string strConnectionString = "Data source=localhost;UserId=root;Password=bla;database=bla;Charset=utf8;";
command.Connection = new MySql.Data.MySqlClient.MySqlConnection(strConnectionString);
command.Connection.Open();
string strImageInsertRequest = "INSERT INTO zp_profiles (image) VALUES (@image);";
MySql.Data.MySqlClient.MySqlCommand ImageInsertDBCommand = new MySql.Data.MySqlClient.MySqlCommand(strImageInsertRequest, command.Connection)
if (File.Exists(strImageFilePath)) {
FileStream fsImage;
BinaryReader brImage;
byte[] ImageData;
fsImage = new FileStream(strImageFilePath, FileMode.Open, FileAccess.Read);
brImage = new BinaryReader(fsImage);
ImageData = brImage.ReadBytes((int)fsImage.Length);
brImage.Close();
fsImage.Close();
ImageInsertDBCommand.Parameters.AddWithValue("@file_avatar", ImageData);
}else{
ImageInsertDBCommand.Parameters.AddWithValue("@file_avatar", null);
}
ProfileInsertDBCommand.ExecuteNonQuery();
command.Connection.Close();
Для больших проектов база данных как раз более приемлемое решение, чем куча файликов на диске.А можно вопрос зачем такое извращение?![]()
Под "этим" форматом вы подразумеваете NOSQL БД? Это уже даже не крупные, а гигантские проекты. В моём случае всё несколько проще.Файлики, однако быстрее и надежнее, в рамках персоналок. В частности из-за особенностей архитектуры. По распространенной аналогии с феррари и автобусом.
Кстати, файлики и на автобусах быстрее, иначе бы Google не использовал этот формат для своих баз.
SQLReader.Read();
UInt32 intMaxFileSize = 10000; //создаём буфер (размер в килобайтах)
byte[] rawData = new byte[intMaxFileSize ];
SQLReader.GetBytes(SQLReader.GetOrdinal("file_avatar"), 0, rawData, 0, (int)intMaxFileSize);
Image image1 = new Bitmap(new MemoryStream(rawData));
image1.Save(@"D:\test2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Еще раз объясни нах базу нагружать ИЗОБРАЖЕНИЯМИ?Для больших проектов база данных как раз более приемлемое решение, чем куча файликов на диске.



