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);


       

相关文章
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
|
9月前
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
在YMP校验过程中,从yashandb同步至Oracle的数据出现timestamp(0)字段不一致问题。原因是yashandb的timestamp(x)存储为固定6位小数,而Oracle的timestamp(0)无小数位,同步时会截断yashandb的6位小数,导致数据差异。受影响版本:yashandb 23.2.7.101、YMP 23.3.1.3、YDS联调版本。此问题会导致YMP校验数据内容不一致。
|
9月前
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
|
9月前
|
存储 Oracle 关系型数据库
【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致
【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
280 0
|
XML API 图形学
【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG
【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG
123 0
【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
270 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
221 0
|
程序员 数据库
分享 2 个 .NET EF 6 只更新某些字段的方法
分享 2 个 .NET EF 6 只更新某些字段的方法
330 0
|
Oracle 关系型数据库
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
755 0