DSN255 er oprette i windows 2000 Datakilder(odbc) administration
public static void sqlnonread(string sql) { System.Data.Odbc.OdbcConnection con = new System.Data.Odbc.OdbcConnection(constr); System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(sql, con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); }
nu er spørglset hvordan får jeg gemt et bilelde i databasen, jeg har fundet frem til at der skal bruges et felt af type blob.
og fundet en masse spørgsmål men uden svar. har også fundet en del men de er til andre en odbc connection og har ikke kunne omsæt dem til odbc forbindelse.
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Den side havde jeg fundet, man kan ikke umidelbart finde ud af hvor den sætter ind i databasen, og kan heller ikke finde ud at convtere den asp.net kode til c# windows application.
Du smider denne metode ind i din klasse: public string addImage(byte [] buffer,string extension) { string strSql = "SELECT * FROM File"; DataSet ds = new DataSet("Image"); OdbcDataAdapter tempAP = new OdbcDataAdapter(strSql,this._objConn); OdbcCommandBuilder objCommand = new OdbcCommandBuilder(tempAP); tempAP.Fill(ds,"Table");
try { this._objConn.Open(); DataRow objNewRow = ds.Tables["Table"].NewRow(); objNewRow["Extension"] = extension; objNewRow["Data"] = buffer; ds.Tables["Table"].Rows.Add(objNewRow); // trying to update the table to add the image tempAP.Update(ds,"Table"); } catch(Exception e){return e.Message;} finally{this._objConn.Close();} return null; }
//databse connection System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(constr); System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(sqlstr, conn);
string BLOBFilNavn=sanitize("c:\\Eksempel.jpg"); //filnavn på billede
//læs fil FileStream BLOBfs = new FileStream(BLOBFilNavn, FileMode.Open, FileAccess.Read); Byte[] BLOBbyte = new Byte[BLOBfs.Length]; BLOBfs.Read(BLOBbyte, 0, BLOBbyte.Length); BLOBfs.Close();
//lav ny paramter som gememr billedet System.Data.Odbc.OdbcParameter prm = new System.Data.Odbc.OdbcParameter("@fil", System.Data.Odbc.OdbcType.Image, BLOBbyte.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, BLOBbyte);
conn.Open(); //åben cmd.Parameters.Add(prm); //sæt paramter på komandoen cmd.ExecuteNonQuery(); //udfør den cmd.Dispose(); //luk
MessageBox.Show("ok"); //vis bedsked
}
læs billede
private void button2_Click(object sender, EventArgs e) { sqlread("SELECT * FROM img WHERE id='5' ORDER BY id ASC"); //sql for hente det bestemte billede
while (rd.Read()) //så længe data { Byte[] BLOBbyte = new Byte[0]; //lav et byte array BLOBbyte = (Byte[])(rd["img"]); //sæt inhold af bloben ind i bytearret MemoryStream BLOBdata = new MemoryStream(BLOBbyte); //lav en mmeory strem this.pictureBox2.Image = Image.FromStream(BLOBdata); //sæt bilelde ind i pictuerbox. } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.