Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Odczytaj typ danych Mediumblob z MYSQL w C#

Patrząc na przykłady z tego artykułu o MySQL strona internetowa , powinieneś być w stanie obsłużyć dane w następujący sposób:

Aby zapisać obraz:

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;

// initialize "conn" and "cmd" here

FileStream fs = new FileStream(@"c:\image.png", FileMode.Open, FileAccess.Read);
FileSize = fs.Length;

byte[] rawData = new byte[FileSize];
fs.Read(rawData, 0, FileSize);
fs.Close();

conn.Open();

string SQL = "INSERT INTO file VALUES(NULL, @FileSize, @File)";

cmd.Connection = conn;
cmd.CommandText = SQL;
cmd.Parameters.AddWithValue("@FileSize", FileSize);
cmd.Parameters.AddWithValue("@File", rawData);

cmd.ExecuteNonQuery();

conn.Close();

I żeby to przeczytać:

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
MySql.Data.MySqlClient.MySqlDataReader myData;

// initialize connection and query here...

myData = cmd.ExecuteReader();

if (!myData.HasRows)
    throw new Exception("There are no BLOBs to save");

myData.Read();

int FileSize = myData.GetUInt32(myData.GetOrdinal("file_size"));
byte[] rawData = new byte[FileSize];

myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, (int)FileSize);

FileStream fs = new FileStream(@"C:\newfile.png", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(rawData, 0, (int)FileSize);
fs.Close();

Ten kod pokazuje, jak zapisać obraz do pliku (i zakłada, że ​​jest on przechowywany w formacie PNG), ale możesz wtedy zrobić z danymi, co tylko chcesz...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tablica w zapytaniu SQL?

  2. Jak zastosować operację SUMA bez grupowania wyników w SQL?

  3. Różnica daty/czasu w PHP/MySQL

  4. chcę wyświetlić ten wynik za pomocą kodeignitera

  5. Kolejność zapytań MySQL według większości wypełnionych pól