.net下Oracle的Blob欄位存取(一)插入操作

來源:互聯網
上載者:User

--以對一篇文章的插入為例 操作Oracle的Blob欄位--

Oracle的Blob欄位是二進位存取,上傳前要把檔案轉成二進位,下載亦是把下載到的二進位轉換.最大可存取4GB的檔案,適合對大檔案或非文字檔的操作,以下就最近做的一個項目,把對Blob的存取寫出來供網友參考:

 

 1
 2        //新增文章------------
 3
 4        public void add_Papers(string username, string title, string author, string author2, string author3,string text)
 5        {
 6            
 7            try
 8            {
 9                byte[] b = System.Text.Encoding.Unicode.GetBytes(text);
10
11                System.DateTime time = System.DateTime.Now;
12                Users.Class1 u = new Users.Class1();
13                int uid = u.getUserID(username);
14                string sql = "insert into paper_table(state_ID,firstauthor_ID,PAPER_NAME,FIRSTWRITER_NAME,secondwriter_name,thirdwriter_name,submit_time,paper_text)";
15                sql = sql + "VALUES(:a,:b,:c,:d,:e,:f,:g,:h)";
16                OracleCommand cmd = new OracleCommand(sql, conn);
17                
18                conn.Open();
19                cmd.Parameters.Add("a", System.Data.OracleClient.OracleType.Number).Value =1;
20                cmd.Parameters.Add("b", System.Data.OracleClient.OracleType.Number).Value =uid;
21                cmd.Parameters.Add("c", System.Data.OracleClient.OracleType.VarChar).Value = title;
22                cmd.Parameters.Add("d", System.Data.OracleClient.OracleType.VarChar).Value = author;
23                cmd.Parameters.Add("e", System.Data.OracleClient.OracleType.VarChar).Value = author2;
24                cmd.Parameters.Add("f", System.Data.OracleClient.OracleType.VarChar).Value = author3;
25                cmd.Parameters.Add("g", System.Data.OracleClient.OracleType.DateTime).Value = time;// "to_date('" + time + "','yyyy-mm-dd HH24:MI:SS')";
26                cmd.Parameters.Add("h", System.Data.OracleClient.OracleType.Blob,b.Length).Value = b;
27                cmd.ExecuteNonQuery();
28                conn.Close();
29            Papers.papers p = new papers();
30             p.insert_modified_table(title,uid);
31             p.insert_into_submit_state_table(title, uid);
32            }
33            catch
34            { 
35           
36            }
37           
38        }

 

 

讀取文本

 

 1   //得到文章內容
 2        public string get_paper_text(string id,string table)
 3        {string sql;
 4            string str="";
 5            if (table == "paper_table")
 6            {
 7                sql = "select paper_text from paper_table where id='" + id + "'";
 8                OracleCommand cmd = new OracleCommand(sql, conn);
 9                conn.Open();
10                OracleDataReader dr = cmd.ExecuteReader();
11                while (dr.Read())
12                {
13                    if (dr["paper_text"].ToString() == "")//如果文章內容為空白 不能轉二進位
14                        str = "";
15                    else
16                    {
17                        byte[] b = (byte[])dr["paper_text"];
18                        str = System.Text.Encoding.Unicode.GetString(b);
19                    }
20                }
21                conn.Close();
22
23            }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.