Sziasztok ismét!:)
naszóval a problémám a következő: Van egy openfiledialog, amivel megnyitok egy képet, ezt a képet rögtön meg is jelenítem egy pictureBox-ban, de a megjelenítéssel egy időben szeretném másolni a képet a debug/images-be, és van egy adatok.mdb ahova a másolt kép elérési útját, szeretném beírni, hogy a későbbiekben is meg tudjam nyitni onnan.
odáig már okés hogy megnyitja és elmenti a képet a debug/images-be... de az adatok.mdb-be semmi sem kerül.
és van egy hibaüzim is: már létező... a következő fájl nem található F:\adatok.mdb
itt másolom és mentem a képet.
string imagesDir = Application.StartupPath + @"\images";
string picture = null;
openFileDialog1.Filter = "Pictures|*.jpg;*.jpeg;*.bmp;*.png;*.gif";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
picture = openFileDialog1.FileName;
}
if (!Directory.Exists(imagesDir))
Directory.CreateDirectory(imagesDir);
string dest = imagesDir + "\\" + picture.Substring(picture.LastIndexOf(@"\") + 1);
if (picture != null)
{
File.Copy(picture, dest, true);
Image image = new Bitmap(picture);
pictureBox1.Image = image;
}
Ezután az adatbázisba megpróbálom elmenti
myCommand2.Parameters.Add("@kep", OleDbType.VarChar).Value = dest;
és máris van egy hibaüzim is: már létező... a következő fájl nem található F:\adatok.mdb
És akkor elkadtam.. segítsetek! Köszi!
- 2936 megtekintés
Hozzászólások
Bocsi, de a "myCommand2" pontosan mit is takar?
- A hozzászóláshoz be kell jelentkezni
string mySelectQuery2 = "INSERT INTO Fejezet ([fejezet_id], [tema_id], [kep], [szoveg]) VALUES (@fejezet_id, @tema_id, @kep, @szoveg)";
OleDbCommand myCommand2 = new OleDbCommand(mySelectQuery2, myConnection);
myCommand2.Parameters.Add("@kep", OleDbType.VarChar).Value = dest;
itt kéne hozzáadni az adatbázishoz a kép elérési útját... asszem:)
- A hozzászóláshoz be kell jelentkezni
Na jól elhavaztam, de lentebb már látom, segítségedre lettek. :)
- A hozzászóláshoz be kell jelentkezni
Szia,
A Parameters.Add-dal csak beállítod a paramétered értékét, de nem írod bele az adatbázisba. Valahogy így írhatod be:
"OleDbConnection példány".Open();
"OleDbDataAdapter példány".Fill("DataSet példány");
Bár a hibaüzenet nem erre utal... beírnád a teljes szöveget?
Az adatbázisod dataset/connection/adapter cuccai be vannak állítva?
Itt találsz példát az oledb írásra:
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparamete…
- A hozzászóláshoz be kell jelentkezni
private void kepOk_Click(object sender, EventArgs e)
{
string imagesDir = Application.StartupPath + @"\images";
string picture = null;
openFileDialog1.Filter = "Pictures|*.jpg;*.jpeg;*.bmp;*.png;*.gif";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
picture = openFileDialog1.FileName;
}
if (!Directory.Exists(imagesDir))
Directory.CreateDirectory(imagesDir);
string dest = imagesDir + "\\" + picture.Substring(picture.LastIndexOf(@"\") + 1);
if (picture != null)
{
File.Copy(picture, dest, true);
Image image = new Bitmap(dest);
pictureBox1.Image = image;
}
}
private void buttonTemaMent_Click(object sender, EventArgs e)
{
GroupboxSzoveg.Visible = false;
groupBoxKép.Visible = false;
kepOk.Visible = false;
string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=adatok.mdb";
string mySelectQuery1 = "DELETE FROM Fejezet WHERE (tema_id = " + temaSorszamok[temavalaszt.Text] + ") AND (fejezet_id= " + fejezet_sorszam + ")";
string mySelectQuery2 = "INSERT INTO Fejezet ([fejezet_id], [tema_id], [kep], [szoveg]) VALUES (@fejezet_id, @tema_id, @kep, @szoveg)";
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
OleDbCommand myCommand1 = new OleDbCommand(mySelectQuery1, myConnection);
OleDbCommand myCommand2 = new OleDbCommand(mySelectQuery2, myConnection);
myCommand2.Parameters.Add("@fejezet_id", OleDbType.VarChar).Value = fejezet_sorszam;
myCommand2.Parameters.Add("@tema_id", OleDbType.VarChar).Value = temaSorszamok[temavalaszt.Text];
myCommand2.Parameters.Add("@kep", OleDbType.VarChar).Value = dest;
myCommand2.Parameters.Add("@szoveg", OleDbType.VarChar).Value = textBoxSzoveg.Text;
try
{
myConnection.Open();
myCommand1.ExecuteReader();
myCommand2.ExecuteReader();
}
catch (OleDbException ex)
{
MessageBox.Show("Már létező...\n"+ex.Message);
}
myConnection.Close();
}
a fejezet_id-t meg az összes többit hozzáadja...csak a képet nem akarja... és ott ír hibát.
- A hozzászóláshoz be kell jelentkezni
A buttonTemaMent_Click() fv-ben nincs dest változód. Ha pedig van is ilyen globális/osztálybeli változó a kepOk_Click() fv egy saját lokális változónak ad értéket.
- A hozzászóláshoz be kell jelentkezni
Hi,
csak hozzafuznivalo!
miert executereader() ? miert nem executenonquery() ?
ez igy is jo, de ugy meg szebb, es persze nem koltseges annyira. A reader var egy soronkent olvashato adathalmazt vissza es minden elokeszuletet megtesz erte, amire neked nincs szukseged.
szép napokat
zsömi
- A hozzászóláshoz be kell jelentkezni