C# 通过存储过程将参数从asp.net传递到oracle
我有一根绳子:“有时候,”维尼说,“最小的东西占据了你心中最大的空间。”。当我使用Oracle SQL Developer将这个字符串插入Oracle数据库时,它工作得很好,但当我使用ASP.net应用程序时,我得到了这样一个结论:?有时候,'维尼说,'最小的东西占据了你心中最大的空间。' 你能帮我吗 数据库中的字段类型-NVARCHAR2 文件名-I_注释 来自包的存储过程:C# 通过存储过程将参数从asp.net传递到oracle,c#,asp.net,oracle,stored-procedures,C#,Asp.net,Oracle,Stored Procedures,我有一根绳子:“有时候,”维尼说,“最小的东西占据了你心中最大的空间。”。当我使用Oracle SQL Developer将这个字符串插入Oracle数据库时,它工作得很好,但当我使用ASP.net应用程序时,我得到了这样一个结论:?有时候,'维尼说,'最小的东西占据了你心中最大的空间。' 你能帮我吗 数据库中的字段类型-NVARCHAR2 文件名-I_注释 来自包的存储过程: PROCEDURE INSERTNEWSFLASH ( i_StartTime DATE, i_EndTime DAT
PROCEDURE INSERTNEWSFLASH
(
i_StartTime DATE,
i_EndTime DATE,
i_Comment NVARCHAR2,
i_Priority NUMBER,
i_Type NUMBER,
i_AirlineCode VARCHAR2,
o_NewsFlashId out NEWSFLASH.NEWSFLASHID%type
);
包体中的存储过程:
PROCEDURE INSERTNEWSFLASH
(
i_StartTime DATE,
i_EndTime DATE,
i_Comment NVARCHAR2,
i_Priority NUMBER,
i_Type NUMBER,
i_AirlineCode VARCHAR2,
o_NewsFlashId out NEWSFLASH.NEWSFLASHID%type
) AS
BEGIN
SELECT NEWSFLASHID_SEQ.nextval into o_NewsFlashId from dual;
INSERT INTO NEWSFLASH
(
NEWSFLASHID,
VALIDFROMDATE,
VALIDTODATE,
NEWSFLASHTEXT,
NEWSFLASHPRIORITY,
NEWSFLASHTYPE,
AIRLINECODE
)
values
(
o_NewsFlashId,
i_StartTime,
i_EndTime,
i_Comment,
i_Priority,
i_Type,
i_AirlineCode
);
END INSERTNEWSFLASH;
C#代码:
使用
OracleType.NVarChar2
而不是DbType.String
什么是数据库字符集和排序规则?ENGLISH_UNITED KINGDOM.WE8ISO8859P1我无法更改此数据库的字符集。这是必需的。有一个OracleDbType.NVarchar2
我猜你应该使用它
public int Add(NewsFlashModel newsFlash)
{
using (IDataHelper dataHelper = dataHelperFactory.GetDataHelper(StaffTravelSettings.ConnectionStrings.ITravelDatabase))
{
dataHelper.AddParameter("i_StartTime", ParameterDirection.Input, DbType.Date, newsFlash.ValidFromDate);
dataHelper.AddParameter("i_EndTime", ParameterDirection.Input, DbType.Date, newsFlash.ValidToDate);
dataHelper.AddParameter("i_Comment", ParameterDirection.Input, DbType.String, newsFlash.NewsText);
dataHelper.AddParameter("i_Priority", ParameterDirection.Input, DbType.Int32, newsFlash.Priority);
dataHelper.AddParameter("i_Type", ParameterDirection.Input, DbType.Int32, (int) newsFlash.Type);
dataHelper.AddParameter("i_AirlineCode", ParameterDirection.Input, DbType.String, newsFlash.AirlineCompanyCode);
IDataParameter parameter = dataHelper.AddParameter("o_NewsFlashId", ParameterDirection.Output, DbType.Int32);
dataHelper.ExecuteNonQuery("NEWSFLASH.INSERTNEWSFLASH");
return Convert.ToInt32(parameter.Value);
}
}