关于VS.NET的OracleClient类库的两个大BUG,没想到微软支持ORACLE这么差!!!!

death0320 2004-04-30 11:15:59
第一个:
我在用Asp.NET(C#)写操作Oracle数据库的程序时,如果用OracleClient的时候就会出现一个很奇怪的问题,那就是不管我是用DataSet或是OracleDataReader读出一个表中的数据时,只要有记录在同一字段的时候有重复的情况下,我在DataGird中就看到在第一条记录的时候,想同内容字段的值是完整的,可是如果第二条记录就会发现比前一条相同字段记录少一半。有时有很多一样的时候,一半的后面还有一些随机的字符,可是用oleDB就没有这个问题,感觉这是VS.NET的BUG。情况如下:

id name sex birth
1 xxxxxxxx M 19990303
2 xxxx M 1999
3 xxxxC:| M 1999k;k

就如同上面的样子一样,用oleDB用就可以显示正常。大家有没有这种情况,可以试试看。
第二个:
我发现当操作存储过程的时候,出现问题了。我的存储过程如下:
create or replace procedure gettaskid(taskid out varchar2,tasktype in varchar2) is
v_maxtaskid varchar2(14);
v_currentdate varchar2(8);
begin
select to_char(sysdate,'yyyymmdd') into v_currentdate from dual;
select max(task_id) into v_maxtaskid from d_ent_task where task_type = tasktype and to_char(task_date,'yyyymmdd') = v_currentdate;
if v_maxtaskid is null then
taskid := v_currentdate||'000001';
else
taskid := to_char(to_number(v_maxtaskid) + 1);
end if;

end gettaskid;
功能就是得出一个序号。用以下代码出错怎么也没有用,得出来的值还是上面存储过程if中的值,不会自己加1。
public string ExecProc(string myType)
{
string temp="";
conn=DBConnect.GetConnection();
cmd=conn.CreateCommand();
cmd.Connection=conn;
cmd.CommandText="gettaskid";
cmd.CommandType=System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("taskid",OracleType.VarChar,14);
cmd.Parameters["taskid"].Direction=ParameterDirection.Output;
cmd.Parameters.Add("tasktype",OracleType.VarChar,2);
cmd.Parameters["tasktype"].Direction=ParameterDirection.Input;
cmd.Parameters["tasktype"].Value="04";
conn.Open();
cmd.ExecuteNonQuery();
temp=(string)cmd.Parameters["taskid"].Value;
conn.Close();
return temp;
}
如果换成OleDb来做就能得出加1后的值。

唉~~~~没想到微软竟对Oracle支持的这么差。
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
deanzheng 2004-06-17
  • 打赏
  • 举报
回复
楼主老大:你是怎么连接oracle的,可否告知,谢谢!
我已经搞了好几天了,可还连不上数据库,甭说发现bug了。
你的数据库是在本机还是服务器,如果是在服务器上,请指教如何连接。
万分感谢
email:zhengxf@trane.com
msn:kaisa_z@hotmail.com

盼望您的答复
xiangding 2004-06-17
  • 打赏
  • 举报
回复
不会的,看看你程序吧,
一般来说这是小东东,不会有这样的bug的
vzxq 2004-04-30
  • 打赏
  • 举报
回复
nod ,什么中国也能出个 oracle 或 mircorsoft 啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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