Manchmal müssen Bilder oder Dateien aus bestimmten Gründen (z. B. aus Sicherheitsgründen) in der Datenbank gespeichert werden, insbesondere wenn die Dateien relativ groß sind Der Zugriff auf Dateien in der Datei ist wie folgt organisiert (die Idee ist die gleiche wie beim Zugriff in SQL Server2000). Beim Speichern wird der binäre Bytestrom des Bildes oder der Datei in den Daten gespeichert. Beim Lesen wird das entsprechende Feld in der Datei gespeichert Die Datenbank wird in die Byte-Daten eingelesen und dann ausgegeben):
1. Erstellen Sie eine Datenbanktabelle in TOAD oder SQLPlus.
1TABELLE TEST_TABLE ERSTELLEN
2(
3 ID VARCHAR2(36 BYTE),
4 NAME VARCHAR2(50 BYTE),
5 FOTO BLOB
6)
7
2. Erstellen Sie eine neue ASPX-Seite, fügen Sie ein FileUpload-Steuerelement auf der Seite ein, nennen Sie es fileUp und platzieren Sie zwei Schaltflächen mit den Namen btnSave (speichern) und btnRead (lesen).
3. Führen Sie den folgenden Code im btnSave-Ereignis aus, um Bilder oder Dateien zu speichern:
Speichern Sie Bilder (Dateien) in Oracle
1StringBuilder sbSQL = new StringBuilder("insert into Test_Table(ID,Name,Photo) Values(:ID,:Name,:Photo)");
2 OracleConnection cn = new OracleConnection(strCn);
3 OracleCommand cmd = cn.CreateCommand();
4 cmd.CommandText = sbSQL.ToString();
5 cmd.Parameters.Add(":ID", OracleType.VarChar, 36).Value = Guid.NewGuid().ToString();
6 cmd.Parameters.Add(":Name", OracleType.VarChar, 50).Value = fileUp.FileName;
7 int intLen = fileUp.PostedFile.ContentLength;
8 byte[] pic = neues byte[intLen];
9 fileUp.PostedFile.InputStream.Read(pic, 0, intLen);
10 cmd.Parameters.Add(":Photo", OracleType.Blob).Value = pic;
11 Versuche
12 {
13 cn.Open();
14 cmd.ExecuteNonQuery();
15}
16 Fang (Ausnahme ex)
17 {
18 Response.Write(ex.Message);
19}
20 endlich
einundzwanzig {
22 cn.Close();
dreiundzwanzig }
24
4. Die Lesemethode ist wie folgt:
Lesen Sie Bilder (Dateien) von Oracle
1OracleConnection cn = new OracleConnection(strCn);
2OracleCommand cmd = cn.CreateCommand();
3cmd.CommandText = "Foto aus test_table auswählen";
4Versuchen Sie es
5{
6 cn.Open();
7 MemoryStream stream = new MemoryStream();
8 IDataReader reader = cmd.ExecuteReader();
9 if (reader.Read())
10 {
11 byte[] pic = (byte[])reader[0];
12 //byte[] pic = (byte[])cmd.ExecuteScalar();
13 stream.Write(pic, 0, pic.Length);
14 //Bitmap bitMap = new Bitmap(stream);
15 //Response.ContentType = "image/Jpeg";
16 //bitMap.Save(Response.OutputStream, ImageFormat.Jpeg);
17 // Der Kommentarteil kann das Bild im IE anzeigen, anstatt das Bild herunterzuladen.
18 // Die folgende Methode lädt die Datei direkt herunter
19 Response.ContentType = "application/octet-stream";
20 Response.AddHeader("Content-Disposition", "attachment;FileName= demo.JPG");
21 Response.BinaryWrite(pic);
22 Response.End();
dreiundzwanzig }
vierundzwanzig
25}
26catch (Ausnahme ex)
27{
28 Response.Write(ex.Message);
29}
30endlich
31{
32 cn.Close();
33}
34
http://www.cnblogs.com/weiweictgu/archive/2006/11/17/563761.html