asp.net 向Oracle数据库表的Clob字段中写入文本编辑器中输入的大段文字信息

简介: 首先需要一个Oracle操作类,OraDbHelper.cs,代码如下:using System;using System.

首先需要一个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天前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
19 4
|
8天前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
18 2
|
10天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库:装上去,飞起来!
本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
196 0
|
1月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
|
1月前
|
关系型数据库 MySQL 数据库
往数据库的字段varchar 或datetime里存时间值
往数据库的字段varchar 或datetime里存时间值
80 0
|
28天前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
25 0
|
28天前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
55 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
15小时前
|
Oracle 关系型数据库 数据库
Flink Sink to Oracle 存在字段CLOB类型,如何处理错误”ORA-01461: 仅能绑定要插入LONG的LONG值“
做Flink CDC同步数据过程中,目标是Oracle数据库,其中某个字段较大被设置为CLOB类型,其中会遇到异常,”ORA-01461: 仅能绑定要插入LONG的LONG值“
|
6天前
|
Oracle 关系型数据库 数据处理
某教程学习笔记(一):10、oracle数据库注入
某教程学习笔记(一):10、oracle数据库注入
6 0
|
6天前
|
SQL 数据库管理
sqlite语句order by两个字段同时排序处理
sqlite语句order by两个字段同时排序处理
13 0