Я искал много и пробовал различные методы, но не смог решить эту проблему. Мне нужно сохранить изображение в файл mysql.Извлечение среды blob из MySQL возвращает только 13 байтов
Я использовал ниже код для того, чтобы сохранить изображение в базе данных.
try
{
string location = @"C:\Users\test\Downloads\Photos\batman-greenscreen.jpg";
FileStream fs = new FileStream(location, FileMode.Open, FileAccess.Read);
UInt32 fileLength = (UInt32)fs.Length;
byte[] buffer = new byte[fileLength];
fs.Read(buffer, 0, (int)fileLength);
string sqlPhotoQuery = "INSERT INTO tab_photo VALUES('" + photo.PhotoId + "','" + photo.ProjectID + "','" + photo.Day + "','" + photo.Barcode + "','" + photo.Photoname + "','" + photo.PhotoXml + "','" + buffer + "','" + fileLength + "')";
int result = MySqlHelper.ExecuteNonQuery(connectionString, sqlPhotoQuery);
if (result > 0)
return true;
else
return false;
}
catch (Exception e)
{
return false;
}
в этом файле длина изображения составляет 12428,
, что я пытался для извлечения данных из базы данных:
Photo photo = new Photo();
try
{
string sqlQuery = "SELECT * FROM tab_photo where PhotoId='"+photoId+"'";
MySqlDataReader rdr = MySqlHelper.ExecuteReader(connectionString, sqlQuery);
while (rdr.Read())
{
photo.PhotoId = rdr.GetString("PhotoId");
photo.ProjectID = rdr.GetString("ProjectID");
photo.Day = rdr.GetInt32("Day");
photo.Barcode = rdr.GetString("Barcode");
photo.Photoname = rdr.GetString("Photoname");
photo.PhotoXml = rdr.GetString("PhotoXml");
MemoryStream ms;
UInt32 FileSize;
Bitmap outImage;
int fileSize = rdr.GetInt32(rdr.GetOrdinal("PhotoSize"));
byte[] rawData = new byte[fileSize];
rdr.GetBytes(rdr.GetOrdinal("Photo"), 0, rawData, 0, (Int32)fileSize);
photo.imageByte = rawData;
}
}
catch (Exception e)
{}
но когда я получить файл, он получить только первые 13 байт. после этого его значение равно ноль и есть разница в значениях извлечения.
я следовал инструкции, указанные в Handling BLOB Data With Connector/Net.
согласно тому, что я изменил мои настройки следующим образом:
это как сохраненные данные в базе данных
каковы причины того, что я не могу получить правильные значения? есть ли какие-либо проблемы при сохранении данных или извлечении данных или конфигурации базы данных?
Как выглядят данные на стороне базы данных? Записывает ли оператор 'Insert' полный буфер' byte [] в базу данных? – jordanhill123
@ jordanhill123 Я также добавил образец db – DevT