oracle数据库:C#用参数的形式操作Oracle数据库日期字段时的一些问题

有关C#用参数形式操作Oracle数据库日期字段时些问题

Oracle日期字段问题直是比较怪

在用C#进行数据库操作时用参数形式传递经过几次测试和SQL有下面区别:

表结构如下:

create table T_DOC_DOCTYPE
(
DOCTYPEID NUMBER,
DOCTYPENAME VARCHAR2(50),
ISDEL VARCHAR2(10) default '否',
ADDTIME DATE,
OFFICERID NUMBER,
OFFICERIP VARCHAR2(35)
)



1、在model层日期字段用类型

如下:

using ;
using .Collections.Generic;
using .Text;

HWQY_Model.Doc
{
public M_DOC_DOCTYPE
{
public M_DOC_DOCTYPE
{ }
#region Model
private _doctypeid;
private _doctypename;
private _isdel;
private _addtime;
private _officerid;
private _officerip;
/// <summary>
///
/// </summary>
public DOCTYPEID
{
{ _doctypeid = value; }
get { _doctypeid; }
}
/// <summary>
///
/// </summary>
public DOCTYPENAME
{
{ _doctypename = value; }
get { _doctypename; }
}
/// <summary>
///
/// </summary>
public ISDEL
{
{ _isdel = value; }
get { _isdel; }
}
/// <summary>
///
/// </summary>
public ADDTIME
{
{ _addtime = value; }
get {


_addtime;

}
}
/// <summary>
///
/// </summary>
public OFFICERID
{
{ _officerid = value; }
get { _officerid; }
}
/// <summary>
///
/// </summary>
public OFFICERIP
{
{ _officerip = value; }
get { _officerip; }
}
#endregion Model
}
}

2、在Task层传递参数类型中用.Data.OleDb.OleDbType.Date类型


/// <summary>
/// 增加条数据
/// </summary>
public Add(HWQY_Model.Doc.M_DOC_DOCTYPE model)
{
StringBuilder strSql = StringBuilder;
strSql.Append("insert o T_DOC_DOCTYPE(");
strSql.Append("DOCTYPEID,DOCTYPENAME,ISDEL,ADDTIME,OFFICERID,OFFICERIP)");
strSql.Append(" values (");
strSql.Append(":DOCTYPEID,:DOCTYPENAME,:ISDEL,:ADDTIME,:OFFICERID,:OFFICERIP)");
// .Data.OleDb.OleDbParameter
OleDbParameter parameters = {
OleDbParameter("DOCTYPEID", .Data.OleDb.OleDbType.Integer,4),
OleDbParameter("DOCTYPENAME", .Data.OleDb.OleDbType.VarChar,50),
OleDbParameter("ISDEL", .Data.OleDb.OleDbType.VarChar,10),
OleDbParameter("ADDTIME", .Data.OleDb.OleDbType.Date),
OleDbParameter("OFFICERID", .Data.OleDb.OleDbType.Integer,4),
OleDbParameter("OFFICERIP", .Data.OleDb.OleDbType.VarChar,40)};
parameters[0].Value = model.DOCTYPEID;
parameters[1].Value = model.DOCTYPENAME;
parameters[2].Value = model.ISDEL;
parameters[3].Value ="2008-09-09";
parameters[4].Value = model.OFFICERID;
parameters[5].Value = model.OFFICERIP;

Result = 0;
Result = HWQY_Task.HWQY_OraHelper.ExecuteSql(strSql., parameters);
Result;
}

要修改地方有:

(1)参数名不能用SQL下@DOCTYPEID形式而需要将@换成:

(2)日期字段用字段串形式不需要使用to_date即可以

(3) OleDbParameter("OFFICERIP", .Data.OleDb.OleDbType.VarChar,40)};部分参数前面不能有@或者:

上面代码可以正确将数据插到表中
Tags:  oracle数据库教程 oracle数据库备份 oracle创建数据库 oracle数据库

延伸阅读

最新评论

发表评论