Jak zapisać zdjęcie do MySQL?
poczytaj o BLOB, ale lepiej tego nie używaj (trzymaj w bazie ścieżki do plików, a pliki normalnie na serwerze).
[???] openFileDialog1.ShowDialog();
openFileDialog1.Filter = "Bitmap Files|*.bmp";
string zdun = openFileDialog1.FileName;
string dbConnecti;
OdbcConnection ETO;
dbConnecti = polaczenie;
ETO = new OdbcConnection(dbConnecti);
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO foto VALUES (NULL,@fileData)", ETO);
//SqlCommand cmd = new SqlCommand("INSERT INTO BLOBTest (BLOBData) VALUES (@BLOBData)", cn);
String strBLOBFilePath = @"C:\Documents and Settings\roblac\Pulpit\wzp\a.bmp";
//String strBLOBFilePath = @'"'+ zdun + '"';
FileStream fsBLOBFile = new FileStream(strBLOBFilePath, FileMode.Open, FileAccess.Read);
Byte[] bytBLOBData = new Byte[fsBLOBFile.Length];
fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
fsBLOBFile.Close();
OdbcParameter prm = new OdbcParameter(strBLOBFilePath, OdbcType.Binary, bytBLOBData.Length, ParameterDirection.Input, false,
0, 0, null, DataRowVersion.Current, bytBLOBData);
MyCommand.Parameters.Add(prm);
ETO.Open();
MyCommand.ExecuteNonQuery(); <- ERROR [HYT00] [MySQL][ODBC 3.51 Driver][mysqld-5.0.15-nt]Column 'zdjecia' cannot be null. Kompilacja OK, ale przy zapisie krzyczy taki błąd.
ETO.Close();
A można wiedzieć jak wygląda tabela foto ? (tzn jakie ma nagłwówki i typy)
To baardzo prosta tabela
id - int autoincrement
zdjecia longblob
chodzi mi tylko o sam mechaniz dodawania zdjęć.
Do t3q.
Wiem o możliwości zapisu scieżki do bazy a pliku do jakiegoś folderu.
Ten wariant to ostateczność. Zdjęcia muszą zostać zapisane w jednym miejscu - czyli bazie.
Ten programik będzie zainstalowany na kilu komputerach, gdy komp.z docelowym folderem zostanie wyłączony to co się stanie ze zdjęciami?
Jeśli chodzi o wątek to ja pierwszy raz jestem na forum, uczestniczę w nim. Zawsze takie strony tylko przeglądałem, ale dzięki za poradę. [browar]
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Title = "Otworz zdjęcia";
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
openFileDialog.Filter = "Pliki typu (.jpg;.bmp;.gif)|.jpg;.bmp;.gif";
openFileDialog.ShowDialog();
string robo = openFileDialog.FileName;
string dbConnecti;
OdbcConnection ETO;
dbConnecti = polaczenie;
ETO = new OdbcConnection(dbConnecti);
FileStream fs = new FileStream(@Robo, FileMode.Open);
Byte[] fileData = new Byte[fs.Length];
fs.Read(fileData, 0, (int)fs.Length);
ETO.Open();
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO foto (zdjecia) VALUES (@zdjecia)", ETO);
OdbcParameter robi = new OdbcParameter("@zdjecia", OdbcType.Image);
robi.Value = fileData;
MyCommand.Parameters.Add(robi);
MyCommand.ExecuteNonQuery();
ETO.Close();
fs.Close();
Znowu ten sam problem!!!