用OracleParameter添加数据为何只添加一半?请高手指教啊。。

Philip3 2011-12-27 01:58:34
在做一个操作的测试的时候,用OracleParameter添加两个varchar2的数据,可是添加的内荣只有传进的内容的一半,不知什么原因?
代码如下:
command.CommandType = CommandType.Text;
command.CommandText = "insert into webapp.lb_image1(IDWAY,IMAGETEST,CREATEDATE) VALUES (:IDWAY,:IMAGETEST,sysdate)";


OracleParameter[] parameterValue = {
new OracleParameter(":IDWAY",OracleType.VarChar,20),
new OracleParameter(":IMAGETEST",OracleType.VarChar,200),
};

parameterValue[0].Value = "TestImageTestImage";
parameterValue[1].Value = "ImageTestImageTest";

foreach (OracleParameter parameter in parameterValue)
command.Parameters.Add(parameter);

command.Connection = connection;
OpenConnection();
try
{
command.ExecuteNonQuery();
}
catch (Exception e)
{
throw;
}
finally
{
CloseConnection();
}
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dean615 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 philip3 的回复:]

有Varchar2类型么?
应该是NVarchar,一旦改成这个就报错。。上面了。。
[/Quote]
我现在机器上没有ORACEL环境,但是我印象中应该是有OracleDbType.Varchar2
dean615 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 philip3 的回复:]

有Varchar2类型么?
应该是NVarchar,一旦改成这个就报错。。上面了。。
[/Quote]
我现在机器上没装ORACLE,但是我印象中应该是有个 OracleDbType.Varchar2
Philip3 2011-12-27
  • 打赏
  • 举报
回复
有Varchar2类型么?
应该是NVarchar,一旦改成这个就报错。。上面了。。
dean615 2011-12-27
  • 打赏
  • 举报
回复
你把OracleParameter 的TYPE 改成Varchar2试试,按道理说应该不会出错,不过想不出来了,你试试
Philip3 2011-12-27
  • 打赏
  • 举报
回复
楼上,不是这个问题,我要是parameterValue[0].Value = "TestImageT";

那么插入的就只有5个字符,即TestI

还有问题,就是一旦换成OracleType.NVarChar,就会报错"[System.Data.OracleClient.OracleException] = {"ORA-12571: TNS:包写入程序失败\n"}"

但是能插入数据,但是插入的是空的。。。
很是晕啊,拜求各位高手解答一下。。。。
dean615 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 philip3 的回复:]

数据库字段是10,和100,我断点跟踪的command的parameter的值也都是对的,就是插到数据库里就成了一半了
[/Quote]

你数据库字段是10,parameterValue[0].Value = "TestImageTestImage";而0的长度明显大于10了,当然会被截断了,如果没数错的话,IDWAY 里插入的应该是TestImageT
你要把IDWAY 的数据库字段长度给改成20.。。。
Philip3 2011-12-27
  • 打赏
  • 举报
回复
数据库字段是10,和100,我断点跟踪的command的parameter的值也都是对的,就是插到数据库里就成了一半了
dean615 2011-12-27
  • 打赏
  • 举报
回复
代码里应该没什么问题,你应该去CHECK下,数据库里对应字段的长度~~~
csdn_aspnet 2011-12-27
  • 打赏
  • 举报
回复
看看你的字段长度是不是够大 还可以通过断点看看你的参数是不是传入的很完整
孟子E章 2011-12-27
  • 打赏
  • 举报
回复
如果是中文应该使用 OracleType.NVarChar类型
孟子E章 2011-12-27
  • 打赏
  • 举报
回复
new OracleParameter(":IDWAY",OracleType.VarChar,20),
new OracleParameter(":IMAGETEST",OracleType.VarChar,200),
改成
new OracleParameter(":IDWAY",OracleType.VarChar,40),
new OracleParameter(":IMAGETEST",OracleType.VarChar,400),

呢?
数据库字段大小要匹配

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧