向Oracle資料庫表的Clob欄位中寫入文字編輯器中輸入的大段文字資訊

來源:互聯網
上載者:User

首先需要一個Oracle操作類,OraDbHelper.cs,代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Data.OracleClient;/// <summary>///OraDbHelper 的摘要說明/// </summary>public class OraDbHelper{    private string connectionString;    /// <summary>       /// 設定資料庫字串的串連       /// </summary>               public string ConnectionString    {        set { connectionString = value; }    }    public OraDbHelper(string connectionString)    {        this.connectionString = connectionString;    }    #region ExecuteDataTable    /// <summary>       /// 執行一個查詢,並返回結果集       /// </summary>       /// <param name="commandText">要執行的查詢SQL文本命令</param>       /// <returns>返回查詢結果集</returns>       public DataTable ExecuteDataTable(string commandText)    {        return ExecuteDataTable(commandText, CommandType.Text, null);    }    /// <summary>       /// 執行一個查詢,並返回查詢結果       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者SQL文本命令</param>       /// <returns>返回查詢結果集</returns>       public DataTable ExecuteDataTable(string commandText, CommandType commandType)    {        return ExecuteDataTable(commandText, commandType, null);    }    /// <summary>       /// 執行一個查詢,並返回查詢結果       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者SQL文本命令</param>       /// <param name="parameters">PL-SQL 陳述式或預存程序的參數數組</param>       /// <returns></returns>       public DataTable ExecuteDataTable(string commandText, CommandType commandType, params OracleParameter[] parameters)    {        DataTable data = new DataTable();//執行個體化DataTable,用於裝載查詢結果集           using (OracleConnection connection = new OracleConnection(connectionString))        {            using (OracleCommand command = new OracleCommand(commandText, connection))            {                command.CommandType = commandType;//設定command的CommandType為指定的CommandType                   //如果同時傳入了參數,則添加這些參數                   if (parameters != null)                {                    foreach (OracleParameter parameter in parameters)                    {                        command.Parameters.Add(parameter);                    }                }                //通過包含查詢SQL的SqlCommand執行個體來執行個體化SqlDataAdapter                   OracleDataAdapter adapter = new OracleDataAdapter(command);                adapter.Fill(data);//填充DataTable               }        }        return data;    }    #endregion ExecuteDataTable    #region ExecuteReader    /// <summary>       /// 將 CommandText 發送到 Connection 並產生一個 OracleDataReader。       /// </summary>       /// <param name="commandText">要執行的查詢SQL文本命令</param>       /// <returns></returns>       public OracleDataReader ExecuteReader(string commandText)    {        return ExecuteReader(commandText, CommandType.Text, null);    }    /// <summary>       /// 將 CommandText 發送到 Connection 並產生一個 OracleDataReader。       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者SQL文本命令</param>       /// <returns></returns>       public OracleDataReader ExecuteReader(string commandText, CommandType commandType)    {        return ExecuteReader(commandText, commandType, null);    }    /// <summary>       /// 將 CommandText 發送到 Connection 並產生一個 OracleDataReader。       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者SQL文本命令</param>       /// <param name="parameters">Transact-SQL 陳述式或預存程序的參數數組</param>       /// <returns></returns>       public OracleDataReader ExecuteReader(string commandText, CommandType commandType, OracleCommand[] parameters)    {        OracleConnection connection = new OracleConnection(connectionString);        OracleCommand command = new OracleCommand(commandText, connection);        //如果同時傳入了參數,則添加這些參數           if (parameters != null)        {            foreach (OracleCommand parameter in parameters)            {                command.Parameters.Add(parameter);            }        }        connection.Open();        //CommandBehavior.CloseConnection參數指示關閉Reader對象時關閉與其關聯的Connection對象           return command.ExecuteReader(CommandBehavior.CloseConnection);    }    #endregion ExecuteReader    #region ExecuteScalar    /// <summary>       /// 從資料庫中檢索單個值(例如一個彙總值)。       /// </summary>       /// <param name="commandText">要執行的查詢PL-SQL文本命令</param>       /// <returns></returns>       public Object ExecuteScalar(string commandText)    {        return ExecuteScalar(commandText, CommandType.Text, null);    }    /// <summary>       /// 從資料庫中檢索單個值(例如一個彙總值)。       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者PL-SQL文本命令</param>       /// <returns></returns>       public Object ExecuteScalar(string commandText, CommandType commandType)    {        return ExecuteScalar(commandText, commandType, null);    }    /// <summary>       /// 從資料庫中檢索單個值(例如一個彙總值)。       /// </summary>       /// <param name="commandText">要執行的SQL語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者SQL文本命令</param>       /// <param name="parameters">PL-SQL 陳述式或預存程序的參數數組</param>       /// <returns></returns>       public Object ExecuteScalar(string commandText, CommandType commandType, OracleParameter[] parameters)    {        object result = null;        using (OracleConnection connection = new OracleConnection(connectionString))        {            using (OracleCommand command = new OracleCommand(commandText, connection))            {                command.CommandType = commandType;//設定command的CommandType為指定的CommandType                   //如果同時傳入了參數,則添加這些參數                   if (parameters != null)                {                    foreach (OracleParameter parameter in parameters)                    {                        command.Parameters.Add(parameter);                    }                }                connection.Open();//開啟資料庫連接                   result = command.ExecuteScalar();            }        }        return result;//返回查詢結果的第一行第一列,忽略其它行和列       }    #endregion ExecuteScalar    #region ExecuteNonQuery    /// <summary>       /// 對資料庫執行增刪改操作       /// </summary>       /// <param name="commandText">要執行的查詢pl-sql文本命令</param>       /// <returns></returns>       public int ExecuteNonQuery(string commandText)    {        return ExecuteNonQuery(commandText, CommandType.Text, null);    }    /// <summary>       /// 對資料庫執行增刪改操作       /// </summary>       /// <param name="commandText">要執行的pl-sql語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者pl-sql文本命令</param>       /// <returns></returns>       public int ExecuteNonQuery(string commandText, CommandType commandType)    {        return ExecuteNonQuery(commandText, commandType, null);    }    /// <summary>       /// 對資料庫執行增刪改操作       /// </summary>       /// <param name="commandText">要執行的pl-sql語句</param>       /// <param name="commandType">要執行的查詢語句的類型,如預存程序或者pl-sql文本命令</param>       /// <param name="parameters">pl-sql 語句或預存程序的參數數組</param>       /// <returns>返回執行操作受影響的行數</returns>       public int ExecuteNonQuery(string commandText, CommandType commandType, OracleParameter[] parameters)    {        int count = 0;        using (OracleConnection connection = new OracleConnection(connectionString))        {            using (OracleCommand command = new OracleCommand(commandText, connection))            {                command.CommandType = commandType;//設定command的CommandType為指定的CommandType                   //如果同時傳入了參數,則添加這些參數                   if (parameters != null)                {                    foreach (OracleParameter parameter in parameters)                    {                        command.Parameters.Add(parameter);                    }                }                connection.Open();//開啟資料庫連接                   count = command.ExecuteNonQuery();            }        }        return count;//返回執行增刪改操作之後,資料庫中受影響的行數       }    #endregion ExecuteNonQuery}

cs代碼中調用代碼如下:

 OraDbHelper dbHelper = new OraDbHelper(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString.ToString());        string sql = "insert into SYIT_POSTINFORM " +            " ( ZYXTYPE,GRADENM,TITLE,FBRNM,FBTM,YXTM,CONTS,FROMSR) values ";        sql += "( '" + sclass + "'";        sql += ", '" + gwxx[1] + "'";        sql += ", '" + gwxx[0] + "'";        sql += ",' " + gwxx[2] + "'";        sql += ", to_date('" + gwxx[3] + "','yyyy/MM/DD')";        sql += ", to_date('" + gwxx[5] + "','yyyy/MM/DD')";        sql += ", :lgContent ";        sql += ", '" + gwxx[4] + "'";        sql += " )";        OracleParameter[] parameters = {                       new OracleParameter("lgContent",OracleType.Clob)            };        parameters[0].Value = gwxx[6];        dbHelper.ExecuteNonQuery(sql, CommandType.Text, parameters);

       

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.